基本动作

备注

  • 每个动作都可以在运算符命令之后使用,因此该命令对动作范围所包含的文本进行操作。
  • 就像运算符命令一样,运动可以包括计数,因此你可以按 2w ords 移动,例如。

箭头

在 Vim 中,普通箭头/光标键( ← ↓ ↑ → )按预期工作。但是,对于触摸式打字机,使用 h j k l 替代键更容易。在典型的键盘上,它们在同一行上彼此相邻,并且可以使用右手轻松访问。要记住哪些内容的助记符技术是这样的:

  • h / l - 在键盘上的四个字母中,它们位于“最左边/右边”,因此它们分别相当于“向左/向右”;
  • j - 小写 j 的尾部在典型字母下面向下,就像一个小箭头 - 所以它相当于向下;
  • k - 相反,小写 kascender 比典型的字母高出 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)。像 gggGg,)执行的动作算作跳跃,变化也是如此。变化得到他们自己的跳转列表,如上所述通过 g,g; 可以导航(参见:help changelist)。Vim 不会将跳转视为动作命令

当跨行向上或向下移动时,光标会保留其预期的列。如果新行太短,则光标移动到新行的末尾。如果列超出了行的末尾,则光标将显示在行的末尾。初始列号仍保留,直到采取措施更改它(例如编辑文本或显式移动列)。

如果行的长度超过屏幕宽度,则会包装文本(在默认设置下,可以配置此行为)。要移动屏幕上显示的行,而不是文件中的行,请 g 在常用命令前添加。例如,gj 将光标移动到当前位置下方一行显示的位置,即使它位于文件的同一行。