把 Vim 配置成顺手的 Python 轻量级 IDE

Posted Python开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了把 Vim 配置成顺手的 Python 轻量级 IDE相关的知识,希望对你有一定的参考价值。


来源:yieku 

链接:www.jianshu.com/p/c690a3462224



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


ctrlp.vim


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


安装


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


Plugin 'ctrlpvim/ctrlp.vim'


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


配置及使用


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


把 Vim 配置成顺手的 Python 轻量级 IDE(2)

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


把 Vim 配置成顺手的 Python 轻量级 IDE(2)

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




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


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


把 Vim 配置成顺手的 Python 轻量级 IDE(2)

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


  • Enter :跳转到选择的行;

  • t : 在新建标签中打开该文件;

  • p : 在预览窗口中打开;

  • q : 退出CtrlSF窗口。


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


把 Vim 配置成顺手的 Python 轻量级 IDE(2)

用Quickfix显示搜索结果

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


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


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,效果如图:


把 Vim 配置成顺手的 Python 轻量级 IDE(2)


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


map <F3> :TagbarToggle<CR>




vim-airline和vim-airline-themes


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


vim-airline和vim-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 配置成顺手的 Python 轻量级 IDE(2)


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


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


let g:airline_powerline_fonts = 1


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


把 Vim 配置成顺手的 Python 轻量级 IDE(2)


最顶部显示的是当前打开的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


效果如下:



关注「Python开发者」

看更多精选Python技术文章

↓↓↓

以上是关于把 Vim 配置成顺手的 Python 轻量级 IDE的主要内容,如果未能解决你的问题,请参考以下文章

新手学vim配置

LinuxLINUX操作系统下VIM的安装和配置

Centos 中 vim 的配置

配置VIM (Windows)

配置VIM (Windows)

使用Powerline为VIM和Bash注入强劲动力