当使用基于GUI的文本/源代码编辑器时,某些功能是给定的,例如选择文本。 我的意思是,我们大多数人甚至不会再考虑这个功能了。 但是,像Vim这样的基于命令行的编辑器并不是这样。 专门针对Vim,当只使用键盘时,您必须学习某些命令才能以所需的方式选择文本。 在本教程中,我们将详细讨论这一功能以及Vim的“标记”功能。
But before we start doing that, it's worth mentioning that all the examples, commands, and instructions mentioned in this tutorial have been tested on Ubuntu 16.04, and the Vim version we've used is 7.4.
Vim中的文本选择选项
假设你有关于Vim编辑器的基本知识(否,没有问题,只是在这里 ),你会知道'd'命令可以让你剪切/删除一行。 但是如果你想削减3条线呢? 你的答案可能是:“重复命令三次”。 好的,但是如果要求是剪切一个完整的段落(或者说几个)呢? 首先计算行数,然后运行'd'命令(即使你使用'[n] dd')一个实际的解决方案?
不,这不对。 在这种情况下,更好的解决办法是选择要剪切/删除的行,然后运行'd'命令一次。 以下是一个例子:
假设我想剪切/删除下面截图中显示的简介部分的完整的第一段:
所以我要做的是,我将光标放在第一行的开头,(确保我不在插入模式下)键入'V'(Shift + v)命令。 这将导致第一行被选中,Vim启用Visual Line模式。
现在,我要做的就是使用向下箭头键来选择整个段落。
那就是我们想要的,对吧? 现在只需按'd',所选段落将被删除。 不用说,除了剪切/删除,您可以对所选文本执行任何其他选项。
这给我们带来了另一个重要的方面:并不是每次我们需要删除整条线或线; 在这些情况下该怎么办? 这意味着,我们刚才讨论的解决方案只有在您想要对完整行进行操作时才起作用。 如果要求是删除段落中的前三句话呢?
那么还有一个命令呢 - 只需使用'v'而不是'V'(当然没有单引号)。 以下是一个例子,其中我使用'v',然后选择段落中的前三个句子:
继续前进,有时您正在处理的数据由单独的列组成,并且要求可能是选择特定的列。 例如,考虑以下屏幕截图:
假设要求是仅选择国家的名称,这意味着文本的第二列。 所以在这种情况下你可以做的是将光标放在有问题的列的第一个元素上,然后按Ctrl + v一次。 现在,使用向下箭头键,选择每个国家名称的第一个字母:
然后使用右箭头键,选择完整的列或全名。
提示 :如果您因某些原因取消选择了一段文字,现在想再次选择它,只需在命令模式下按“gv”即可。
使用标记
有时,在使用大文件(例如源代码文件或shell脚本)时,您可能需要切换到特定位置,然后返回到最初的行。 这不是一个问题,如果有问题的线不是很远,或者你必须偶尔这样做。
但是另一回事呢 - 你必须经常跳过你现在的位置和档案中的各种不同的行。 那么这种情况下的解决办法是使用标记。 只需标记您当前的位置,然后从文件中的任何位置返回到此位置,只需提及该标记的名称。
要在vim中标记一行,请使用m命令,后跟一个表示标记名称的字母表(可用选项为az,小写)。 例如, 现在,回到标记a ,使用'a命令(包含单引号)。
提示 : 您可以使用撇号( '
)或反引号(`) depending on whether you want to jump to the beginning of the marked line, or specifically to
的行和列。
Vim标记可以有各种其他有用的应用。 例如,您可以在一行上放一个标记,然后转到其他一行并运行以下命令:
d'[mark-name]
删除当前位置和标记行之间的所有内容。
继续下去,这是Vim的官方文档中的重要投标:
Each file has a set of marks identified by lowercase letters (a-z). In addition there is a global set of marks identified by uppercase letters (A-Z) that identify a position within a particular file. For example, you may be editing ten files. Each file could have mark a, but only one file can have mark A.
所以虽然我们讨论了小写字母作为Vim标记的基本用法,但大写字母的用途和位置如何。 那么下面的摘录使得它很清楚:
Because of their limitations, uppercase marks may at first glance seem less versatile than their lowercase counterpart, but this feature allows them to be used as a quick sort of "file bookmark." For example, open your .vimrc, press mV, and close Vim. The next time you want to edit your .vimrc, just press 'V to open it.
最后,要删除标记,请使用'delmarks'命令。 例如:
:delmarks a
上述命令将从文件中删除标记a 。 当然,如果您删除包含标记的行,那么该标记也会自动删除。 有关标记的更多信息,请访问Vim文档 。
结论
当您开始使用Vim作为主编辑器时,本教程中介绍的功能将成为有用的工具,可节省大量时间。 您同意,在这里解释的选择和标记功能的学习曲线并不多,所需要的只是一些练习。
关于youcl的Vim相关文章的全面介绍,请到这里 。