关于基础操作
关于插件
我最最喜欢的插件,是tabular,因为他治好了我的强迫症
tabular
太好用了
easy align
可以快速对其文本
一般命令是
先选中行,然后<<都移动到左边对其
然后
EasyAlign*\即可对齐
神奇
代码折叠
matchit插件和代码折叠命令配合使用
1 安装
将vim根目录下的macro/matchit.vim拷贝到根目录\plugin
2 vimrc里面添加
注意下面的au BufNewFile,BufRead *.v,*.sv let b:match_words='begin:end'这句话,文件类型之间用逗号,不用空格
packadd! matchit
au BufNewFile,BufRead *.v,*.sv let b:match_words=
\ '\<begin\>:\<end\>,' .
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
\ '\<module\>:\<endmodule\>,' .
\ '\<if\>:\<else\>,' .
\ '\<function\>:\<endfunction\>,' .
\ '`ifdef\>:`else\>:`endif\>,' .
\ '\<task\>:\<endtask\>,' .
\ '\<specify\>:\<endspecify\>'
然后在vim文件中,可以用%去配对begin 和end
case endcase也可以
用zf%去折叠begin end块
za可以来回折叠
更多可以自己搜索或者看
vim 中代码的折叠和打开_Ronney-Hua的博客-CSDN博客
linux环境的设置不太一样。
你可以直接在vimrc里面加
au BufNewFile,BufRead *.v,*.sv let b:match_words=
\ '\<begin\>:\<end\>,' .
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
\ '\<module\>:\<endmodule\>,' .
\ '\<if\>:\<else\>,' .
\ '\<function\>:\<endfunction\>,' .
\ '`ifdef\>:`else\>:`endif\>,' .
\ '\<task\>:\<endtask\>,' .
\ '\<specify\>:\<endspecify\>'
试试看能不能直接用,如果不行的话。再看下面的操作
首先在vim或者gvim里面打 echo $VIMRUNTIME
以得到vim的本地路径。
然后
mkdir ~/.vim/plugin
cp $VIMRUNTIME/macros/matchit.vim ~/.vim/plugin
mkdir ~/.vim/doc
cp $VIMRUNTIME/macros/matchit.txt ~/.vim/plugin
把上面的$VIMRUNTIME 换成你用echo得到的路径,可能需要在路径前面加个/之类的小改的东西。
然后在vimrc里面加
au BufNewFile,BufRead *.v,*.sv let b:match_words=
\ '\<begin\>:\<end\>,' .
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
\ '\<module\>:\<endmodule\>,' .
\ '\<if\>:\<else\>,' .
\ '\<function\>:\<endfunction\>,' .
\ '`ifdef\>:`else\>:`endif\>,' .
\ '\<task\>:\<endtask\>,' .
\ '\<specify\>:\<endspecify\>'
就可以了
关于g相关的命令
gd 搜索
数字 G
跳转到第几行
查错的时候用
GG文件末行
gg文件首行
gf打开文件
紧跟着ctrl+o可以返回前一个文件,多按几次
关于复制粘贴的寄存器
常用操作:
yy 复制一行
p 粘贴
yw复制这个单词
我非常常用的替换操作:
按v或者ctrl+v 进入可视模式
按y
然后 选中想要被替换的内容
输入 :reg可以看到粘贴寄存器的内容
这些寄存器的名字就是 “加上一个符号
比如哦 我想粘贴 “%这个寄存器的内容,我就输入 ”%p,就可以了
我想把内容复制到 “%这个寄存器 我就输入 ”%y 就可以了
我们平时系统默认使用的就是前两个寄存器
我在使用的时候,遇到过一个问题,就是在vimrc里面写入 set clipboard=nunamed,就会导致我上面替换操作不能使用,按p之后,原文不变。
我觉得是因为这个set改变了寄存器的操作,导致异常,我本来写这个是因为想用vim剪切板和系统共用,但是现在发现不好用。
其实只要知道 “*这个寄存器是系统寄存器就可以了,我也不经常要在vi外vi里复制粘贴文件。
而且 gvim好像本身就支持系统粘贴板,只是vim不支持而已。
总之,set clipboard=nunamed这个语句会导致异常,直接使用gvim复制粘贴系统的内容即可。
linux离线安装vim插件
因为公司的电脑都是不能联网的,但是我又想安装一下vim插件,所以找了一些方法去完成这个事情。
1、内网要安装vim。
2、下载插件,如nerdtree、airline、tabular等等。
3、内网,本地homeshare文件夹下,或者是其他名字的本地home文件夹,也就是.vim的根目录应该就可以,如果没有.vim/文件夹,创建它。
4、在.vim/文件夹里面,创建doc文件夹和plugin文件夹、autoload文件夹。将插件文件复制到linux下。
5、如果是从window系统复制文件到linux系统中,那么注意有可能会出现换行符问题,window的换行符是\r\n,而linux是\n。所以在linux会出现^M的异常错误。
解决这个问题,我是使用 下面shell语句解决,linux环境下,先要输入bash进入shell命令行,然后输入
for filename in `find . -name \*.vim`; do dos2unix $filename; done
这个操作是将当前目录下的所有.vim文件转换格式,转成linux可以正确识别的格式。
6、打开插件文件夹,里面一般会有带有doc字符串带有plugin字符串的文件夹。
6、将doc里面的文件放到.vim/doc/中,将plugin相关的文件放到.vim/plugin/中,autoload文件放在.vim/autoload/下。
7、将其文件夹直接放在.vim/目录下,如lib、syntax等。