第 3 章 匆忙行动
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
当然,你不会只创建新文件,你需要花大量时间编辑现有文件。你很少想简单地打开文件的第一行,然后逐行浏览;有时你想进入文件的某个特定位置,然后开始工作。
所有编辑都是从将光标移到要开始编辑的位置开始的(或者,使用ex 行编辑器命令时,从确定要编辑的行号开始)。本章将向你展示如何以多种方式(按屏幕、按文本、按模式或按行号)进行移动。在vi 和 Vim 中移动的方法有很多,因为编辑速度取决于只需敲击几下键盘就能到达目的地。
本章内容包括
-
屏幕移动
-
按文本块移动
-
通过寻找模式来运动
-
按行号排列的移动
屏幕运动
当你阅读一本书时,你会把书中的 "位置 "用 页数来表示:你停止阅读的那一页,或者索引中的页码。而在编辑文件时就没有这种便利了。有些文件只占几行,你可以一眼看到整个文件。但很多文件有几百行(或几千行!)。
你可以把文件想象成一卷长纸上的文本。屏幕就是长卷纸上(通常)24 行文本的窗口。1
在插入模式下,当你在屏幕上输入文字时,最后会输入到屏幕的最下面一行。当你输入到最后并按下ENTER 键时,最上面的一行就会滚出视线,屏幕底部会出现一行空白来输入新的文字。这就是所谓的滚动。
在命令模式下,您可以通过向前或向后滚动屏幕来查看文件中的任何文本。由于光标移动可以乘以数字前缀,因此可以快速移动到文件中的任何位置。
滚动屏幕
通过vi 命令,可以全屏和半屏向前或向后滚动文件:
^F-
向前滚动一屏。
^B-
向后滚动一个屏幕。
^D-
向前滚动半个屏幕(向下)。
^U-
向后滚动半个屏幕(向上)。
备注
在该命令列表中,^ 符号代表CTRL键。因此,^F 意味着按住CTRL键并同时按SHIFT-F键。
此外,还有将屏幕向上滚动一行(^E )和向下滚动一行(^Y )的命令。不过,这两条命令不会将光标发送到行首。光标仍会停留在命令发出时的位置。
用 z 键重新定位屏幕
如果要向上或向下滚动屏幕,但又希望光标 保留在原行,请使用z 命令:
zENTER和z+ENTER-
将当前行移到屏幕顶部并滚动。
z.-
将当前行移动到屏幕中央并滚动。
z--
将当前行移动到屏幕底部并滚动。
在z 命令中,使用数字前缀作为乘数对没有任何意义。(毕竟,您只需将光标重新定位到屏幕顶部一次。重复相同的z 命令不会移动任何东西)。相反,z 将数字前缀理解为行号,并用它来代替当前行。例如,zENTER会将当前行移到屏幕顶端,而200z ENTER则会将第 200 行移到屏幕顶端。
备注
一些 GNU/Linux 发行版带有一个/etc/vimrc文件,该文件 将 Vim 选项scrolloff ("滚动偏移量")设置为非零值(通常为 5)。2
其他发行版则使用/usr/share/vim/vimXX/defaults.vim文件,其中XX是 Vim 版本。将scrolloff 设置为非零值会使 Vim 始终在光标上下提供这么多行上下文。 因此,如果你输入z ENTER将当前行移动到屏幕顶部,但当前行只移动到屏幕顶部下方几行,你就会知道为什么了。
该选项还会影响H 和L 命令(请参阅"在屏幕内移动")以及其他命令。
您可以在个人.vimrc文件中将scrolloff 明确设置为零(有关该文件的更多信息,请参阅"自定义 vi 和 Vim "部分以及"系统和用户配置文件 "部分),从而取消默认设置的效果。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access