把vim配置成顺手的python轻量级IDE(二)

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

ctrlp.vim

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

安装

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

Plugin 'ctrlpvim/ctrlp.vim'

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

配置及使用

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

ctrlp

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

搜索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文件最后添加内容:

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效果图

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

map <F3> :TagbarToggle<CR>

vim-airlinevim-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字体。效果如下如下:

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

效果如下:

彩色括号
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容