继续之前的Vim之旅。
如何在Command模式对一行或多行执行打印命令?
如果是打印光标所在行,则可以使用如下命令:
|
|
如果是打印指定行,比如行号为7的行:
|
|
如何打印指定范围内的行,例如打印第3到第7行:
|
|
执行以上命令后,光标会指向打印的最后一行。
Command模式下,.
和%
的意涵是什么?
.
代表当前行,%
代表当前文件所有行,例如如果替换当前文件所有行中的第一个A为B:
|
|
每行只会替换第一个满足的字符片段,除非加上/g
。
如何在Command模式下实现Visual模式的选择效果?
- 借用Visual模式来高亮指定范围
比如按下1G + VG,可以高亮第一行到最后一行的内容,然后在Command模式按下:
后会出现:
|
|
逗号前后分别代表高亮的首行和最后一行。
- 用模式指定范围
比如有一段文字:
|
|
要打印到的内容可以使用:
|
|
打印内容为:
|
|
记得转义符号。
这里打印的都是行,哪怕在</html>
后面还有内容。
- 用偏移地址来指定范围
修改上一个例子:
|
|
打印为:
|
|
修改的例子中,/<html>/
后进行了加一,表示从该行的后一行打印。
+
后的数字可以省略,省略后默认为1。
如何在Command模式进行行拷贝/剪切?
在Command模式中,:copy
简写为:t
或者:co
。
比如将第六行复制,拷贝到当前行下方:
|
|
和yyp
相比,yyp
会使用寄存器,而本方法不会。
Command模式剪切的使用方法类似拷贝,使用的命令为:m
。
如何取消Vim内容中的高亮?
可以在Command模式运行下列命令:
|
|
如何在非Normal模式下,操作大量重复的任务?
比如我需要在一段文字的每行最后,添加一个分号,可以这样做:
首先将光标移动到第一行,然后键入VG
,接着在Command模式输入normal A;
,这样就能达到要求。
记住:执行normal命令时,Vim会默认将光标移动到行的起始处。
在Command模式中如何自动补全?
输入命令的一部分后,按下<C-d>
,通过<Tab>
顺序遍历,通过shift <Tab>
反向遍历。
如何复制当前光标下的单词到Command模式的命令行?
进入Command模式,按下<C-r><C-w>
。
在Vim界面中,如何查看当前目录的内容?
|
|
如何在Vim界面和命令行界面间进行切换?
有两种方式:
- 通过
:shell
和$exit
进行切换; - 通过
<C-z>
和$fg
进行切换;
通过第二种方法,可以在shell命令行中键入jobs
来查看后台的作业列表。
小结
本文主要用于熟悉Command模式下常用的一些操作。