vim的神级配置

原创
2013/09/23 12:20
阅读数 3.3W

有传言:vim是编辑器之神,(xxx)是神之编辑器。意思就是说vim是编辑器中最好的,而一般的大神级别的人都是使用(xxx)这个编辑器。咱不是神人,就使用vim吧。该配置是从别处搞来的,并作了部分修改,在此向这么大一个群体表示感谢。

1. 下载

配置文件由于太大,只好在CSDN下载,下载链接在下方。最新版本压缩包下包含.vimrc文件和.vim文件夹。linux下,避免对原有配置造成,请先备份你~/下的.vimrc和.vim,把下载好的文件解压缩在~下即可,然后进入前期准备。

  1. 老版本(支持 win):http://download.csdn.net/detail/bubifengyun/6282979
  2. 第一次更新(仅测试了linux,下同):http://download.csdn.net/detail/bubifengyun/8825443
  3. 第二次更新(仅适合 PHP Yii2,下同):http://download.csdn.net/detail/bubifengyun/9646601
  4. 第三次更新(问题较多,不建议使用):http://download.csdn.net/detail/bubifengyun/9725198
  5. 第四次更新(更新插件,内容还有瑕疵,linux下可用)https://download.csdn.net/download/bubifengyun/13762322
  6. 第五次更新(更新插件,重新调试PHP)https://download.csdn.net/download/bubifengyun/20734206

2. 前期准备

需要已经安装vim软件及ctags,cscope插件了。如果没有安装,
Debian系请

sudo apt-get install vim exuberant-ctags cscope

Redhat系请

sudo yum install vim ctags cscope ctags-etags

如果提示需要安装其他软件,请自行安装并在下面留言,谢谢。如果没有其他问题,现在就可以使用了。

参考这里,加入了对 python3 和 perl 的支持。

# cd /opt
# git clone https://hub.fastgit.org/vim/vim.git
# cd vim
# ./configure --with-features=huge \
    --enable-multibyte \
    --enable-rubyinterp=yes \
    --enable-python3interp=yes \
    --enable-perlinterp=yes
# make install

3. 部分操作示例

工作环境Deepin2014.3,vim7.4。设在目录~/sources下含有test1.c, test2.c, test3.c, test4.c等文件。

3.1 常用操作

常用操作最好的学习办法是找个vim的操作图作为桌面。

1. 跳转到sources文件夹。

cd ~/sources

2. 以标签栏的形式打开多个文件,弹出各个文件后,你可以像浏览器标签栏一样鼠标点击打开每个文件。 对于用 -p 打开的标签页,可以使用 gt,gT可以左切换右切换,也可以使用数字1,2,n,+gt.

例如你想切换到第5个标签页,就可以使用 5gt,意思是按下5,g,t键就可以了。  

vim -p test1.c test2.c test3.c

如果你还想继续打开其他文件,是你已经在vim文件了,可以使用下面的命令。

:tabnew test4.c

3. 打开目录栏和变量栏。
vim命令模式下,按F8键会在左侧出现当前文件所在的目录栏。目录栏最上方提示了怎么操作,这里不在赘述。如果想回到文件栏,可以直接鼠标点击文件栏,也可以使用Ctrl+h,j,k,l等实现在栏里左右上下跳转。
vim命令模式下,先后按tb两个键会弹出变量栏。与目录栏类似。

4. 对于编辑,可以使用u,ctrl+r分别为撤销和反撤销。但是需要注意这个都是小写的。有次不小心按了大写键,导致U键删除了不少东西。取消大写键才实现的撤销。

5. 自动缩进排版。
通常根据语言特征使用自动缩进排版:在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是正整数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版。gg=G,该命令慎用。因为有些格式可能跟vim设置的不一致,所以最好只对部分行使用,避免不必要的格式不一致。

6. 折叠。
实现空格键折叠或打开相邻相同缩进的若干行代码,对于低层次的缩进会把高层次的缩进包含进去。类似目录那种形式。

7. 多行操作。
加入了https://github.com/terryma/vim-multiple-cursors的多行选择功能。下面说明多行选择的做法,翻译自该网址。比较关心的选择多个同样的单词,换成其他单词。以及在每行开头插入注释。更多说明,见上面的网址。
(7.1) 选择多个相同单词。插件默认的快捷键是Ctrl+n,在norml mode,选择要改变的一个单词,反复按Ctrl+n,就可以把他们都选择了。Ctrl+p向上取消选择,Ctrl+x放弃下一个。多选后,用c,s或者i,a等改变。ESC退出该模式。
(7.2) 多行加注释。原插件功能很强大,但是我只需要这个。鼠标选择多行,或者V进入视图模式选择。按Ctrl+n,加载多行插件,就可以相当于一行的模式了。

8.查找最近编辑的文件。 normal mode正常模式下,:MRU,查看最近编辑的软件。

3.2 源码小项目的操作

由于配置加入了easytags插件,大项目中会严重降低vim的速度。如果该配置让你的vim变慢了,多半是easytags惹的祸,在~/.vim/bundle/文件夹下,移除vim-easytags和vim-misc两文件夹,并注释掉~/.vimrc文件里easytags的配置即可。

同上假设工作环境。

cd ~/sources
ctags ./
vim -p test*.c

本配置easytags会在本级目录和逐步查询上级目录中找tags,并在你保存的时候自动更新tags(异步更新,可能会延迟个几秒钟才可以使用跳转)。如果在项目根目录下保存了tags,相当于项目只有一个tags,很方便操作。如果需要其他样式,可以到easytags的网页上按需配置。现在就可以方便的按ctrl+],和ctrl+t来回跳转啦。如果多个tags被找到,可以自行选择。使用YII开发的时候,变量同名的太多,建议修改easytags的配置。这个没有更好的解决办法,如果哪位有,谢谢跟我联系 一下。

4. 常见的小问题

4.1 putty的问题

1. windows下的putty的目录栏有问题。双击图标一直打不开。解决方案是加入多字节支持。如下。

cd vim-7.3-src # 转移到源代码处,打算重新安装
./configure --enable-multibyte # 支持多字节,当然要支持中文。如果在中文环境下,这个应该不用设置了吧。
make && make install # 重新安装

如果需要加入对中文乱码的支持,可以修改.vimrc文件里的set fileencodings=gb2312,gb18030,utf-8。需要说明的是,gb18030是非常大的一个集合了,应该可以确保打开不乱码了。参考自:http://www.ltesting.net/html/71/n-128471.html

另外,putty 复制,在 windows 和 putty 相互复制。在设置里,window/Selection/Control use of Mouse/Action of mouse buttons,选择第一个Windows[...],这样就可以在windows 复制了,右击选择粘贴,就可以把代码复制过来。

2. putty 小键盘事件。输入小键盘的东西,常常乱搞一气。建议是putty->Terminal->Features->disable application keypad mode。就好了,这个是从别处扒来的,忘记网址了,谢谢先。
3. putty 死机事件。由于windows的习惯,保存用Ctrl+S,而Ctrl+S是linux下的锁屏快捷键,就悲剧了。还好按下Ctrl+Q就可以解锁了。参 考:http://www.leonzhang.com/2010/06/09/vim_hangu_by_ctrl_s/

4.2 vim跟外界的文本复制问题

1. windows向putty中vim复制文本。
从windows复制东西过来,输入putty,可能导致有些字符被当做操作符了,复制失败。可以试试在vim命令模式下输入:set paste,可粘贴就纯文本,不需要复制则:set nopaste。参考这里

2. Deepin下终端vim跟外界互相复制文本。
这个需要vim中(+粘贴板)的支持,只有安装gtk或者gnome版的vim才可以。

sudo apt-get install vim-gnome

(2.1) vim->外界。按V进入视图模式,或者之间用鼠标选中要复制的内容,按"+y(就是依次按下双引号,加号和y),就可以复制到系统粘贴板里,在其他地方使用。
(2.2) 外界->vim。在命令行模式下找到需要粘贴的地方,按"+p(就是依次按下双引号,加号和p),就可以了。从其他地方到vim复制比较方便,也可以直接在插入模式,Ctrl+Shift+V。参考这里

5. 关于配置更新

本配置插件的采用bundle管理,同时结合vundle管理插件。参考这里:http://www.cnblogs.com/xia520pi/archive/2014/04/11/3659386.html 一般都是在 ~/.vimrc 里加入

Bundle 'tpope/vim-fugitive'

Bundle 'Lokaltog/vim-easymotion' 

其中 引号斜杠前面的是作者名称,后面是插件名称。

Vundle分为三类:

  • 在Github vim-scripts 用户下的repos,只需要写出repos名称

  • 在Github其他用户下的repos, 需要写出"用户名/repos名"

  • 不在Github上的插件,需要写出git全路径

打开一个vim, 运行":BundleInstall"或者在命令行运行"vim +BundleInstall +qall",安装完成后插件就能用了。

其它常用命令:

  • 更新插件":BundleUpdate"

  • 清除不再使用的插件":BundleClean"

  • 列出所有插件":BundleList"

  • 查找插件":BundleSearch"

6. 对PHP调试的支持

这个需要根据这里配置其他软件。本文已经加入了DBGp,可以直接调试YII2等php框架的代码。

这里重新按照新版本更新了配置。

附录

其他可能比较好vim配置推荐。
https://github.com/amix/vimrc
http://haridas.in/vim-as-your-ide.html
http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide
http://blog.csdn.net/namecyf/article/details/7787479?reload

http://corner.squareup.com/2013/08/fly-vim-first-class.html,
还有配置bookmark的,http://code.google.com/p/name5566-vim-bookmark/

最终效果

编辑界面

调试PHP,yii2框架的界面

更多vim插件的说明

为了更好的利用插件,可能需要对vim的安装重新配置,下面将介绍如何改进自动补全的clang-complete跟neocomplete做介绍。(待续20150724)

展开阅读全文
打赏
4
48 收藏
分享
加载中
不避风云博主
再次更改vim配置,参考这里。https://www.tuicool.com/articles/yY3iqab
2020/07/31 13:54
回复
举报
不避风云博主
以其他编码保存文件。https://blog.csdn.net/iamluole/article/details/42173043
2019/08/15 10:49
回复
举报
不避风云博主
对vim8支持不够友好,需要重新做。
2019/05/30 14:19
回复
举报
不避风云博主
加入了 suptertab 以及 snipmate 升级版,可以通过如下方式自动生成代码。比如编写 C 语言。输入 main 按下 <tab>键 就会自动生成一些东西。当然对于 PHP 是更好的了。在一个类里输入 pub 按下 <tab> 键,会立刻弹出你想要的内容框架。 对于 emmet 还可以生成很多数据,方便 HTML 语言的书写。在此不说了。
2016/12/30 09:32
回复
举报
不避风云博主
Usage

For example, below is the current content:

<table|

Now you press >, the content will be:

<table>|</table>

And now if you press > again, the content will be:

<table>
|
</table>
2016/12/22 22:27
回复
举报
不避风云博主
https://github.com/alvan/vim-closetag 这个自动补全更好点。
2016/12/22 22:02
回复
举报
不避风云博主
http://www.wklken.me/posts/2015/06/07/vim-plugin-closetag.html 加入 vim 对 PHP HTML 开发的自动补全以及 emmet
2016/12/22 21:55
回复
举报
不避风云博主
该评论暂时无法显示,详情咨询 QQ 群:912889742
不避风云博主
最终决定选择这个版本 https://github.com/tobyS/pdv
2016/06/05 17:09
回复
举报
不避风云博主
该评论暂时无法显示,详情咨询 QQ 群:912889742
更多评论
打赏
17 评论
48 收藏
4
分享
返回顶部
顶部