歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Vim快捷鍵使用筆記

Vim快捷鍵使用筆記

日期:2017/2/28 13:48:09   编辑:Linux教程

我目前是搞運維的,俗話說"工欲善其事必先利其器",Vim作為最基本的工具,正好這兩天整理了一下,就寫點關於vim的吧。不安裝任何插件。

Vim練級攻略中將vim使用分成的四個階段,因此本次文檔也將按照這個四個階段進行梳理,四個階段分別是:

1.存活(初級入門);

2.感覺良好;

3.覺得更好,更強,更快;

4.使用VIM的超能力;

一.存活(初級入門)

1.vim模式介紹
1) Normal模式, 啟動vim以後自動進入Normal模式
2) Insert模式, 按下i鍵進入insert模式,此時屏幕左下角出現 -- INSERT -- 字樣。在此模式下你可以像用"筆記本"那樣,
ESC鍵返回Normal模式
2.快捷鍵介紹

i -> insert模式, 按ESC返回Normal模式
x -> 刪除當前光標所在的一個字符
:wq -> 保存並退出
dd -> 剪切光標所在的行
p -> 粘貼剪貼板

推薦:
hjkl在Normal模式下,使用hjkl分別代表←, ↓, ↑,方向鍵進行光標移動。
:help <command> -> 顯示相關命令的幫助。你也可以就輸入:help而不跟命令,使用:q退出

二.感覺良好階段
本階段介紹的命令全部都在Normal模式下使用。若果你不知道什麼是Normal模式,請看第一階段,或者多按幾次ESC鍵

1.各種插入模式快捷鍵
a -> 在光標後插入
A -> 在光標行最後插入
o -> 在當前行後插入新的一行
O -> 在當前行前插入新的一樣
I -> 在當前行的最前面插入
cw -> 替換從光標所在位置後到一個單詞結尾的字符

2.簡單的移動光標
0 -> 數字零, 到行頭
^ -> 到本行第一個不是blank字符的位置(所謂blank字符就是空格, tab, 換行, 回車等)
$ -> 到本行行尾
g_ -> 到本行最後一個不是blank字符的位置
/pattern -> 搜索pattern的字符串(如果搜索出多個匹配, 可按n鍵到下一個, N鍵到上一個)

3.拷貝/黏貼
P -> 粘貼,當前光標行的上一行
p -> 粘貼,當前光標行的下一行
yy -> 拷貝當前行

三.更好,更強,更快
1.更好
. -> 小數點,可以重復上一次的命令
N<command> -> 重復某個命令N次

2.更強
NG -> 到第N行,也可以使用:N,比如:3,跳到第三行
gg -> 到第一行
G -> 到最後一行
w -> 到下一個單詞的開頭
e -> 到下一個單詞的結尾
如果你認為單詞是默認方式,那就麼就用小寫e和w。默認上來說,一個單詞有字母,數字和下劃線組成
如果認為單詞是由blank字符分隔, 那麼你需要使用大寫的E和W
*和# -> 匹配光標當前行所在的單詞, 移動光標到下一個(或上一個)匹配單詞

3.更快
一定要記住光標的移動,因為很多命令都可以和這些移動光標的命令連動。
<start position><command><end position>
例如: 0y$命令意味著
0 -> 先到行頭
y$ -> 從這裡開始拷貝, 到本行最後一個字符結束
ye -> 從當前位置拷貝到本單詞的最後一個字符
y$ -> 從當前位置拷貝到本行最後一個字符
v$ -> 選中當前位置到本行最後一個字符
gU -> 選中的字符變大寫
gu -> 選中的字符邊小寫

字符含義介紹:
d -> 刪除
v -> 可視化的選擇

四.Vim超能力
1.在當前行上移動光標: 0, ^, $, f, F, t, T
0 -> 數字零, 到行頭
^ -> 到本行第一個不是blank字符的位置(所謂blank字符就是空格, tab, 換行, 回車等)
$ -> 到本行行尾
fa -> 到下一個為a的字符處, 你也可以fs到下一個為s的字符
t, -> 到逗號前的第一個字符。逗號也可以是其他字符
3fa -> 在當前行查找出第三個出現的a
F和T -> 和f和t作用是一樣,只不過光標移動的方向相反
dtd ->刪除所有的內容,直至遇到d字符

2.區域選擇<action>a<object>或<action>i<object>
action可以是任何的命令,如d(刪除), y(拷貝), v(可視化模式選擇)
object可能是: w一個單詞, W一個以空格為分隔的單詞, s一個句子, p一個段落, 也可以是一個特別的字符 )、]、}等

假設你有一個字)符串(map (+) ("foo")). 而光標鍵在第一個o的位置.
vi" -> 會選擇foo "
va" -> 會選擇"foo" "
vi) -> 會選擇 "foo"
va) -> 會選擇 ("foo")
v2i) -> 會選擇 map (+) ("foo")
v2a) -> 會選擇 (map (+) ("foo"))

3.塊操作
典型的塊操作: 0 Ctrl+v Ctrl+d I 進入Insert模式 ESC

4.自動提示
Ctrl+N 和 Ctrl+P
在Insert模式下,你可以輸入一個單詞的開頭,然後按Ctrl+N或者是Ctrl+p, 自動補齊功能就出現了.

5.vim分屏操作
1)分屏啟動
a.使用大寫的O參數來垂直分屏
vim -On file1 file2 file3 ...
b.使用小寫的o參數來水平分屏
vim -on file1 file2 file3 ...
注釋: n是數字, 表示分成幾個屏幕
2)關閉分屏
Ctrl+W c
3)分屏
a.上下分割當前打開的文件
Ctrl+W s
b.上下分割,並打開一個新的文件
:sp filename
c.左右分割當前打開的文件
Ctrl+W v
d.左右分割,並打開一個新的文件
:vsp filename
4)移動光標
a.把光標移到右邊的屏幕
Ctrl+W h
b.把光標移到左邊的屏幕
Ctrl+W l
c.把光標移到上面的屏幕
Ctrl+W k
d.把光標移到下面的屏幕
Ctrl+W j
5)分屏同步移動
要讓兩個分屏中的文件同步移動,很簡單,你需要同步移動的兩個屏中都輸入如下命令
:set scb
如果你需要解開,那麼輸入下面的命令
:set scb!

6.vim操作一個目錄
直接vim一個目錄,你會進入一個頁面,通過j,k鍵進行上下移動,進入一個目錄或者打開一個文件。
- -> 到上一級目錄
D -> 刪除文件(大寫)
R -> 改在文件名(大寫)
s -> 對文件排序
x -> 執行文件
:cd <dir> -> 改變當前目錄
:pwd -> 查看當前目錄

7.保存會話
如果你打開了好些個文件,還設置了各種滾屏同步,或者是行號等等,那麼,你可以用下面的命令來保存會話:
:mksession ~/.mysession.vim
如果文件重復,vim默認會報錯,如果你想強行寫入的話,你可以在mksession後面加上!
:mksession! ~/.mysession.vim
於是下次,你可以這樣打開這個會話:
vim -S ~/.mysession.vim

差不多上面這些掌握了使用vim就很流暢了,不建議一次性全記住,可以每天學習2個快捷鍵。下一篇,准備介紹tmux這個運維神器。

Copyright © Linux教程網 All Rights Reserved