VIM学习笔记 移动 (Movement)

在行内移动

使用w命令可以向前移动一个单词,使用b命令可以向后移动一个单词。通过在命令中增加数字前缀,可以快速移动指定个数的单词。例如4w可以向前移动4个单词,而5b则是向后移动5个单词。命令e也是向前移到一个单词,并将光标定位到单词的结尾处;命令ge则是向后移到一个单词并定位到前一个单词的结尾处。

利用$命令可以使光标移到一行的结尾处;而g_命令则会而将光标移到一行的最后一个非空字符处。

利用0命令可以使光标移到一行的开始处。而^命令则会忽略开头的空格,而将光标移到一行的第一个非空字符处。

Movement_Inline

在行间移动

进入命令行模式,直接输入行号,按下回车键即可移动到指定的行。

在常规模式下使用G命令,可以移动到指定的行。例如3G可以移动到第3行。而1G则可以移到文件的开头,而G则是移动到文件末尾。

使用-命令,可以移动到上一行的第一个非空字符处;而+命令,则可以移动到下一行的第一个非空字符处。

使用)命令,可以向前移动一个句子;而(命令,则向后移动一个句子。

使用}命令,可以向前移动一个段落;而{命令,则向后移动一个段落。

将以上移动命令与数字相结合,可以进一步加快移动的速度。

Movement_Gotoline

使用ctrl+Uctrl+D命令可以向上和向下翻页,以快速移动到文章的不同部分。请参考滚动屏幕章节中的详细介绍。

显示位置信息

使用:set number命令可以显示行号;而:set nonumber命令则取消行号显示。

使用CTRL-G命令,将在屏幕底部显示当前所在位置的信息。我们还可以在CTRL-G命令之前增加数字参数,数字越大得到的信息就越详细。命令1CTRL-G会显示文件的全路径。命令2CTRL-G会同时显示缓冲区的数字标号。

info_CtrlG

使用gCTRL-G命令,可以显示当前文件中的字符统计信息。包括当前行数(Line)、列数(Col)、字数(Word)、字符数(Char)和字节数(Byte)等信息。

info_gCtrlG

使用:set ruler命令,将在屏幕右下角显示当前所在的行和列,以及相对于整个文件的位置。

set_ruler

移动的历史记录

Vim可以记录在文件中的移动轨迹,并可以回溯到之前到过的位置。例如执行以下命令,移动到不同的行:1G到第一行;10G到第十行;20G到第二十行。然后执行:jumps命令,将会显示移动记录的列表。使用CTRL-O命令,可以跳转到上一个(较旧的)位置。而CTRL-I命令,则可以跳转到下一个(较新的)位置。跳转不仅仅涉及当前文件,也会跳转到曾经涉足的其它文件。

jumps

使用:clearjumps命令,可以清除所有移动历史记录。

使用以下命令,可以查看相关帮助信息:

:help motion.txt

命令小结
^移动到当前行的第一个非空字符处
g^
_
<Home>移动到当前行的第一个字符处
g<Home>
0
g0
g_移动到当前行的最后一个非空字符处
<End>移动到当前行的最后一个字符处
g<End>
$
g$
gm移动到当前行的中间处
w向前移动一个单词
b向后移动一个单词
G移动到指定行
:set number显示行号
:set nonumber不显示行号
count|移动到count列
counth向左移动count个字符
countl向右移动count个字符
countgo移动到第count个字符处
-移动到上一行的第一个非空字符处
+移动到下一行的第一个非空字符处
)向前移动一个句子
(向后移动一个句子
}向前移动一个段落
{向后移动一个段落
G移动到文件末尾
gg移动到文件开头
`.移动到上次编辑处

Ver: 2.0 | YYQ<上一篇 | 目录 下一篇>