把vim配置成顺手的python轻量级IDE(2),vimpythonide,因为别人的代码一般都是一


我在《把vim配置成顺手的python轻量级IDE(一)》中介绍了一些vim的插件,那些插件对于应付简单的实验已经已经能够比较顺手,但是在实际使用中发现在看代码的时候实在是虐心。因为别人的代码一般都是一个工程涉及到多个文件,函数调用关系也比较复杂,这就需要更好的工具来协助我们。因此本文将记录我在之前的配置中新增的几个插件。

ctrlp.vim

这个插件是模仿Sublime Text 的ctrl + p功能,在工程中快速定位某个文件。

安装

这个插件托管在Github上的,可以利用Vundle管理,在.vimrc文件中添加:

Plugin 'ctrlpvim/ctrlp.vim'

然后重启vim,使用命令:PluginInstall,就可以自动安装了。

配置及使用

这个插件安装完成后不需要额外的配置就可以使用基本功能,在NORMAL模式同时按下ctrl + p就可以调用插件:

接下来输入想查找的文件名,支持模糊匹配,意味着只需要记住该文件的一部分或几个字母就可以,例如我输入cmake,结果如下:

这个插件我我使用的不多,所以只介绍基础的用法,如需要更高的用法,可以去项目主页查看文档。


ctrlsf.vim

这个插件是模仿的Sublime Text的ctrl + shift + f功能。可以在工程中全局搜索某个特定的字符,个人感觉比vimgrep要好用很多。

安装

这个插件需要ack的支持,因此在安装插件之前需要安装ack,mac用户可以使用Homebrew来安装,在终端使用下面的命令就可以安装ack:

brew install ack

对于Linux,我并没有实践,因此不多说,不过我想也该也可以利用类似apt-get之类的包管理工具安装。

安装完ack,就可以用Vundle安装ctrlsf.vim了:

Plugin 'dyng/ctrlsf.vim'

配置及使用

安装完成后,插件会自动读取系统变量而不需要手动设置ack的路径。
使用命令:CtrlSF名就可以进行搜索,例如我需要查找print:

:CtrlSF print

插件会自动分割一个窗口来显示搜索结果:

左边的窗口就是查询结果,文件之间用一个空行隔开,每个文件结果的第一行是文件的绝对路径,接着是出现的行及改行的内容。选择其中一行后按不同的键会有不同的行为:

  • Enter :跳转到选择的行;
  • t : 在新建标签中打开该文件;
  • p : 在预览窗口中打开;
  • q : 退出CtrlSF窗口。

CtrlSF.vim也可以调用Quickfix来显示搜索结果。只是命令变成了:CtrlSFQuickfix,但是使用Quickfix来显示搜索结果,就只能使用Enter跳转到该文件了,t、p、q等功能就不支持了:

用Quickfix显示搜索结果

最前面的蓝色文字是文件的绝对路径,中间的灰色文字是出现的行和列,最后面的白色字体是改行的内容。

如果觉得每次搜索都需要输入:CtrlSFQuickfix:CtrlSF很不方便,可以添加一个快捷键来在命令行自动插入,在.vimrc文件最后添加内容:

Python
map f <Plug>CtrlSFPrompt
map F <Plug>CtrlSFQuickfixPrompt

这样在NORMAL模式下按f/F就可以自动在命令行添加相应的命令。


tagbar

几乎所有IDE都有显示文件中的类、函数、变量的功能,这个功能对于阅读代码非常方便,tagbar就是给vim添加该功能。它是基于ctags的,支持很多语言,如果默认不支持还可以手动添加。

安装

首先需要安装依赖的ctags,同样可以使用Homebrew安装:

brew install ctags

然后利用Vundle安装安装tagbar,安装步骤和ctrlsf.vim是相同的,在.vimrc文件中添加一行:

Plugin 'majutsushi/tagbar'

然后重启vim:PluginInstall

配置及使用

安装完成后不需要特别的配置就可以使用,使用方法也很简单,使用命令

:TagbarToggle

就可以打开和关闭tagbar,效果如图:

右边就是tagbar,把光标移动到蓝色字体上按o可以打开和关闭相应的类别。为了方便,建议绑定快捷键来打开和关闭tagbar:

Python
map <F3> :TagbarToggle<CR>


vim-airline和vim-airline-themes

以上的三个插件都是功能性的,从接下来的3个插件就是用于美化的,是为了让vim看起来更舒服,撸代码的时候也能有一个比较好的心情。在上一篇中我介绍了一个状态栏增强的插件vim-powerline,虽然比原生状态栏要强上很多,但是打补丁的字体一直没有配置成功,没有得到官方的效果,而且配置和安装配置过程比较繁琐,所以当我发现vim-airline后就果断弃用了。

vim-airlinevim-airline-themes出自于同一作者,后者可以为前者更换显示的主题。vim-airline拥有vim-powerline的全部功能,而且更美观,能和很多插件深度整合:

vim-bufferline, fugitive, unite, ctrlp, minibufexpl, gundo, undotree, nerdtree, tagbar, vim-gitgutter, vim-signify, quickfixsigns, syntastic, eclim, lawrencium, virtualenv, tmuxline, taboo.vim, ctrlspace and more.

安装

这两个都可以使用Vundle安装:

Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'

如果需要得到比较好的显示效果,仍然需要安装vim-powerline的打过补丁的字体,下载地址。下载完成后运行install.py就可以自动全部安装。

配置及使用

安装完成后如果不做任何配置的效果如下:

从左到右依次是:vim模式、文件名、和tagbar深度整合得到的光标所处函数名、文件类型、编码类型、光标所处位置占比、光标所在行号和总行数、光标列数。

要显示需要在.vimrc中添加:

let g:airline_powerline_fonts = 1

同时,如果是在终端或iterm中使用Vim,需要设置终端或iterm的字体为powerline字体才能正确显示特殊字符,如果是在macvim中使用则还需要在.vimrc中添加使用set guifont = *设置字体为powerline字体。效果如下如下:

最顶部显示的是当前打开的buffer,默认是关闭的,可以通过下面的配置启用:

" 是否启用顶部tabline
let g:airline#extensions#tabline#enabled = 1
" 顶部tabline显示方式
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'

airline有很多主题可供选择,可以去项目主页选择喜欢的主题,然后在.vimrc中添加如下命令来设置主题:

let g:airline_theme="你的主题"


rainbow_parentheses.vim

这个插件的功能很简单,只是为括号添加颜色。

安装

使用Vundle安装:

Plugin 'kien/rainbow_parentheses.vim'

配置及使用

.vimrc中添加如下配置:

let g:rbpt_colorpairs = [ ['brown', 'RoyalBlue3'], ['Darkblue', 'SeaGreen3'], ['darkgray', 'DarkOrchid3'], ['darkgreen', 'firebrick3'],['darkcyan', 'RoyalBlue3'],['darkred', 'SeaGreen3'],['darkmagenta', 'DarkOrchid3'],['brown', 'firebrick3'],['gray', 'RoyalBlue3'],['black',       'SeaGreen3'],['darkmagenta', 'DarkOrchid3'],['Darkblue',  'firebrick3'],['darkgreen', 'RoyalBlue3'],['darkcyan', 'SeaGreen3'],['darkred', 'DarkOrchid3'],['red', 'firebrick3']]
let g:rbpt_max = 16
au VimEnter * RainbowParenthesesToggle
au Syntax * RainbowParenthesesLoadRound
au Syntax * RainbowParenthesesLoadSquare
au Syntax * RainbowParenthesesLoadBraces

效果如下:

评论关闭