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