[Notes] vim使用笔记

关于基础操作

 

关于插件

我最最喜欢的插件,是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等。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值