在刚接触linux里面的vim的时候,感觉特别不好用,要记住各种花样的命令,实在太难用了,但是当记住了一些常用的快捷键和命令之后就不这么认为了,一款编辑器,你在编辑的时候使用的是键盘,如果你能所有的操作人都使用键盘来操作的话,能提高你的工作效率,而vim就是这样了。
一般的编辑器,在编辑一段时间之后,可能还要用鼠标去点,这样无疑会打断人的思维,很不方便。但是获得vim的方便快捷好用是有代价的,就是记住一些一般编辑器的常用命令,如查找、复制、替换、剪切等。
- 查找 /xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.一般来说是区分大小写的, 要想不区分大小写, 那得先输入 :set ignorecase查找到以后, 再输入 :n 查找下一个匹配处, 输入 :N 反方向查找. 替换字符串 :%s/string1/string2
- 定位 在命令模式下输入要去的行号,然后按回车键。显示行: set nu
-
移动光标%是从大括号的开始移动到大括号的结束位置:后边加行号就是跳到这一行光标返回到以前的位置。相当于光标移动的“撤销”光标返回到后来的位置。相当于光标移动的“恢复”
-
重新编辑放弃一修改过的文件,重新编辑。(1)使用命令 :q!强行退出后再vi flname重新进入。(2)使用命令 :e!强行重编辑更便捷。这样也是会打开文件,但会放弃目前编辑文件的改变,否则如果文件已有变动,vim 预设是不让您随便离开的。:e! 后不接什么的话,代表舍弃一切修改,重新载入编辑中文件
- 函数间跳转
ctrl+]和ctrl+T分别是查找函数的定义和返回,好像需要ctag的支持
i 跳转到光标所指标识符的定义行,是打开一个新的小窗口显示,记住要加个i,最好是找自己项目下的文件,否则找库函数的话还不如man.大写 K 看光标所指标识符的 man 帮助页 - 统计字符串在文档中出现的次数:%s/test/&/gn
- 添加vim配置文件:在当前用户home目录下添加文件.vimrc,然后往这个文件里写入配置信息即可。
- 添加vim目录树插件的方法:从http://www.vim.org/scripts/script.php?script_id=1658下载NERDTree(不要从github上下载,有错误),然后解压,将解压出的doc目录中的文件复制到~/.vim/doc/文件夹中,将plugin文件夹中的文件复制到~/.vim/plugin/文件夹中。
- 函数索引插件的安装方法:sudo apt-get install ctags
- vim打开多个文件时,使用miniBUfExplore插件,下载地址:http://www.vim.org/scripts/script.php?script_id=159,将下载下来的文件拷贝到~/.vim/plugin/目录下,然后对.vimrc文件进行相关配置,详见vim配置文件。
- 添加注释插件NERD Commenter,下载地址:http://www.vim.org/scripts/script.php?script_id=1218,安装方法同上。
- 下载地址:http://www.vim.org/scripts/script.php?script_id=850
pydiction-1.2中有四个文件,除了帮助文档和插件之外,还有两个分别是:complete-dict和pydiction.py。其中complete-dict放在~/.vim/tools目录下。pydiction.py是可选文件,官网上的解释是:
Python script used to generate the dictionary. You can optionally run this script to add more modules to complete.
.vimrc中需要如下配置: autocmd FileType python set complete+=k~/.vim/tools/complete-dict - vim-ipython: https://github.com/ivanov/vim-ipython
- 复制、删除、粘贴、撤销
复制:yy 、dd(剪切): 复制(删除)光标所在的行,5yy:复制(删除)除光标所在行,向下五行 粘贴:p:粘贴到光标所在行的下一行. P:粘贴到光标所在行的前一行 高级复制粘贴操作:首先按esc退出编辑模式进入命令模式,然后输入v,进入可视模式,然后用方向键选择要复制或删除的区域(y,d) 撤销:u 反撤销:Ctrl + r
- 分屏
vim水平分屏的使用 (sp filename):vim -on file1 file2 ...其中:
o(是小写字母o,不是数字零)n(表示你要分屏的文件个数) filen(文件名多个文件用空格分开)
vim垂直分屏(vsp filename):vim -On file1 file2 .....
其中:O(是大写字母O,不是数字零)n(表示你要分屏的文件个数)
filen(文件名多个文件用空格分开)
切换到另一个屏幕:Ctrl + w + w