基本动作
备注
- 每个动作都可以在运算符命令之后使用,因此该命令对动作范围所包含的文本进行操作。
- 就像运算符命令一样,运动可以包括计数,因此你可以按 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 将光标移动到当前位置下方一行显示的位置,即使它位于文件的同一行。