基本動作
備註
- 每個動作都可以在運算子命令之後使用,因此該命令對動作範圍所包含的文字進行操作。
- 就像運算子命令一樣,運動可以包括計數,因此你可以按 2w ords 移動,例如。
箭頭
在 Vim 中,普通箭頭/游標鍵( ← ↓ ↑ → )按預期工作。但是,對於觸控式打字機,使用 h j k l 替代鍵更容易。在典型的鍵盤上,它們在同一行上彼此相鄰,並且可以使用右手輕鬆訪問。要記住哪些內容的助記符技術是這樣的:
- h / l - 在鍵盤上的四個字母中,它們位於“最左邊/右邊”,因此它們分別相當於“向左/向右”;
- j - 小寫
j
的尾部在典型字母下面向下,就像一個小箭頭 - 所以它相當於向下; - k - 相反,小寫
k
的ascender
比典型的字母高出up
,就像一個小指標 - 所以它相當於上升。
基本動議
以下所有命令都應在正常模式下完成。
命令 | 描述 |
---|---|
h 要麼 left | 把 [count] 字元放到左邊 |
j 要麼 down | 去 [count] 下面的字元 |
k 要麼 up | 去 [count] 上面的人物 |
l 要麼 right | 把 [count] 字元放到右邊 |
gg |
去第一行,或者 [count] 如果有的話,去第一行 |
H |
轉到可見螢幕的第一行 |
M |
轉到可見螢幕的中間行 |
L |
轉到可見螢幕的最後一行 |
G |
走到最後 [count] 一行,如果給出的話,就行了 |
Home 要麼 0 | 轉到該行的第一個字元 |
^ | 轉到該行的第一個非空白字元 |
+ | 向下一行到第一個非空白字元 |
- | 上一行到第一個非空白字元 |
$ 要麼 End | 轉到行尾(如果 [count] 給出,則 [count - 1] 向下行) |
f{char} | 去 [count] ‘發生 {char} 在右邊的包容性 |
F{char} | 去 [count] “日發生的 {char} 向左包容 |
t{char} | 去 [count] ‘發生 {char} 右邊專屬 |
T{char} | 轉到 [count] ’ {char} 左邊的發生專屬 |
; | 重複最新 f,t,F 或 T [count] 倍 |
, | 重複最新 f,t,F 或 T,在相反方向上, [count] 次 |
w |
轉到下一個單詞的開頭 |
b |
轉到上一個單詞的開頭 |
e |
轉到下一個單詞的結尾 |
ge |
轉到上一個單詞的結尾 |
% | 去匹配對,例如 (), [], {} ,/* */ 或 #if, #ifdef, #else, #elif, #endif |
{ } | 上一個/下一個段落 |
[{ ]} | 塊的開始/結束 |
‘{char} | 去標記(標記 m{char} ) |
<C-B> <C-F> | 上一頁/下一頁 |
<C-O> <C-I> | 返回或跳轉到跳轉列表(需要 jumplist 功能,請參閱:help jumps ) |
注意: b,e 並且 w 預設情況下將一個單詞視為字母,數字和下劃線(可以使用 iskeyword
設定進行配置)。這些中的每一個也可以大寫,使它們跳過任何不是空白的東西。
注意:Vim 識別兩種運動:運算子移動(:help movement
)和跳躍(:help jumplist
)。像 g
(gg
,G
,g,
)執行的動作算作跳躍,變化也是如此。變化得到他們自己的跳轉列表,如上所述通過 g,
和 g;
可以導航(參見:help changelist
)。Vim 不會將跳轉視為動作命令
當跨行向上或向下移動時,游標會保留其預期的列。如果新行太短,則游標移動到新行的末尾。如果列超出了行的末尾,則游標將顯示在行的末尾。初始列號仍保留,直到採取措施更改它(例如編輯文字或顯式移動列)。
如果行的長度超過螢幕寬度,則會包裝文字(在預設設定下,可以配置此行為)。要移動螢幕上顯示的行,而不是檔案中的行,請 g 在常用命令前新增。例如,gj 將游標移動到當前位置下方一行顯示的位置,即使它位於檔案的同一行。