利用vim可以有用一些强大的功能。本章节将对其高级功能进行描述。
一、缩写
单词的缩写
:iab ad advertisement
键入ad,就会自动补全advertisement
语句的缩写
:iab fft for i from to do {<Enter><Enter>};
类似的命令可以都写在一个文件里,再在.vimrc文件中加入source此文件的命令,以后就可以一直用这些缩写
二、宏操作
编程时,我们通常会用到一些重复性的操作。我们可以通过宏操作来简化我们的过程。
1、使用qa命令开始,其中a可以是任意的一个字母,这个操作就表明后续动作都被记录下来
2、执行操作
3、使用q结束命令
使用@a就可以执行刚刚记录下来的操作,3@a就是执行三次
三、键映射、定义
除了F1具有预定义的帮助功能外,其余的键在vim中都没有预定义的内容,都可以用来做键映射。
- 正常模式之下的map命令
- 插入模式之下的imap命令
- 取消一个键的映射unmap命令
如果重复操作中具有参数的话,我们可以通过:command来创建一条新的命令。
例1:我们希望把当前行所有的output替换成reg
:command SS s/output/reg/g
下次执行:SS就等价于执行:s/output/reg/g
例2:命令的含义:command -nargs=+ SS s/output/<args>/g
-nargs=1 1个参数
-nargs=* 任意个数的参数
-nargs=? 0个或1个参数
-nargs=+ 1个或多个参数
:command -range=% SS <line1>,<line2>s/output/reg/g
-range 默认当前行
-range=% 默认所有行
重新定义一个命令":command! SS
删除一个命令:delcommand SS
一定要注意-range和-nargs在命令中的位置。
四、块操作
块操作在日常选中一大段,对这一大段进行操作时十分有用。下面就来介绍几种块操作。
Ctrl+v命令能进入一种可视的模式,在这种模式下可以选中一个矩形文本,然后对这个文本进行操作
此操作可以分为两个部分:第一部分是选中,第二部分是操作。
第一步:将光标放到所需要的起始位置;然后按下Ctrl+v键进入可视模块;结合jkhl键选出你所需要的矩形块。此时矩形块是高亮的状态。
第二步:
- I,在文本块的左边添加文本 光标在第一行,键入文本后,以 ESC键结束,则可以对整个块进行操作。
- A,在文本块的右边添加文本
- c,删除文本块并添加文本
- r,整个文本块以r后键入的一个字符来替换
- >,整个文本块右移一个tab的距离
- <,整个文本块左移一个tab的距离
- y,copy一个文本块
- p,黏贴
-
d/x,删除
注意:对于语句块{}这三种括号包括起来的块,可以将光标置于{[(上,然后键入命令,命令主要包括:
>%,缩进一个tab的距离
d%,删除整个语句块
y%,copy整个块语句
五、多文件编辑
1、Vim中支持在同一个vim中打开多个文件
:e aa.v,如果文件不在当前目录里面,那么你需要指定相对或者绝对路径。
此时被关闭的当前文件,并没有消失而是被放到了vim的一个缓冲区。通过:ls或者:buffers可以产看缓冲区列表。以下命令可以进入你想要跳到的文件。
- :buffer2 ,其中2是缓冲区编号,通过:ls/:buffers查看
- :b2
- :buffers aaa.v ,利用Tab键可以实现自动补全功能
2、多窗口编辑
- :split aaa.v:sp aaa.v,对aaa.v的文件上下分屏显示
- :vsplit aaa.v:vs aaa.v,左右分屏显示
- :e ex1-1,将ex1-1文件打开替换掉当前光标定位的文件。
- :close,关闭当前窗口
- :only,关闭所有其他窗口只保留当前窗口
- :split aaa.v,上下分屏显示
- :new,新打开一个窗口
-
:qall :wall :wqall :全部退出,全部保存,全部退出和保存
在Linux命令行底下,可以直接输入命令分屏打开好几个文件 - vim -O file1 file2 :垂直分屏打开文件
- vim -o file1 file2:水平分屏打开文件
gf,快捷键,可以将光标定位在文件名上,就可以直接打开此文件
:br,命令回到文件列表
例:import /home/x00464410/xuqing.v 注意如果不是在此路径下,一定要注明相对路径或者绝对路径。
这个命令在vim编辑器里面查看顶层文件时,有着十分简便的应用。
网友评论