vim 基本动作

示例

备注

  • 每个动作都可以在运算符命令之后使用,因此该命令可对动作范围所包含的文本进行操作。

  • 就像运算符命令一样,动作可以包括计数,因此您可以按指令移动2w

在Vim中,正常的箭头/光标键()可以正常工作。但是,对于触摸打字机,使用hjkl替代键会更容易。在典型的键盘上,它们位于同一行上彼此相邻,并且可以使用右手轻松访问。记住哪一个的记忆方法如下:

  • h/ l—它们位于键盘上四个字母中的“最左/最右”,因此分别等效于“向左/向右”;

  • j —小写字母“ j”的尾巴在典型字母下方“向下”,如小箭头-等效于“向下”;

  • k —相反,小写字母“ k”的“升序”在典型字母上方“向上”,就像一个小指针一样,因此等效于“向上”。

基本动作

以下所有命令应在正常模式下完成。

命令描述
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]向下一行)
|[count]如果count未指定,则转到第'个字符或转到行的开头
f{char}转到[count]包含{char}”正确的位置
F{char}转到[count]{char}左”的第
t{char}转到[count]{char}右”的唯一出现
T{char}转到左侧的唯一[count]出现次数{char}
;重复最新ftFT[count]
,重复最新ftFT,在相反方向上,[count]
w转到下一个单词的开头
b转到上一个单词的开头
e转到下一个单词的结尾
ge转到上一个单词的结尾
%转到匹配的对e.g(), [], {},/* */或#if, #ifdef, #else, #elif, #endif
{}上/下一段
[{]}块的开始/结束
'{char}进行标记(用标记m{char}
<C-B><C-F>上一页/下一页
<C-O><C-I>在“跳转列表”中返回或前进(需要jumplist功能,请参阅:help jumps)

注意:bew,默认情况下将单词视为字母,数字和下划线(可以使用此iskeyword设置进行配置)。这些中的每一个也可以大写,从而使它们也跳过所有非空白的内容。

注意:Vim识别两种运动:运算符运动(:help movement)和跳跃(:help jumplist)。像执行那些运动g(gg,G,g,)算作跳跃,因为这样做的改变。更改将获得自己的跳转列表,如上所述,可以通过g,和对其进行导航g;(请参阅参考资料:help changelist)。Vim不将跳转视为运动命令

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

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