转载

菜鸟vimer成长记——第4.1章、通用插件

简介

关于插件的分类,此系列只会简单的区分为通用插件和编程插件。通用插件的意思是,不基于任何编程语言都可以使用的插件。编程插件,是针对于编程习惯,或者说是针对于某种语言的插件。

计划中,是先把基本常用的插件先整理出来。后期如果有遇到更适合的插件也会添加进来。

下面的插件,如果没有特别说明都是基于Vundle管理的。这些插件都可以在github上搜到,一般是最受欢迎的那个,所以就不一一说明了。

有些插件的快捷键设置会统一在最后的配置文件体现,就不一一描述。

开始界面

vim-startify

vim-startify是一个更改开始界面的插件,使用了之后启动vim就不会再看到版本信息的界面,而是一些快捷方式,如最近打开的文件,自己设置的bookmark,还有session等等,并且可以快速打开,非常的实用。

菜鸟vimer成长记——第4.1章、通用插件

使用方式

菜鸟vimer成长记——第4.1章、通用插件

如果直接vim不指定文件名,startify全显示一个小巧但精致的窗口。如果已经在编程文件,可以通过:Startify命令调出来这个窗口。

普通的打开文件方式。此时通过 j , k 来移动,确认要打开的时候按

键。

更快的打开文件方式。列表上有数字,直接按对应的数字就可以打开。

更强的打开文件方式。可以通过操作,支持更丰富的窗口打开方式。先移动并按下面的操作方式,最后再统一按

  • b 在同一个窗口打开
  • s 水平分屏
  • v 垂直分屏
  • t 打开新的标签页

其他命令

  • e 创建一个新的缓冲
  • q 退出

更多细节,可以参见:h Startify。

配色

配色下完后,还需要把插件的color拷贝到指定的color目录(比如windows下,目录是$VIM/vimfiles/colors)。这里推荐两个:molokai、solarized。大家自行下载。

窗口

菜鸟vimer成长记——第4.1章、通用插件 几个区域的解释

  1. nerdtree窗口,浏览文件。
  2. 文件编辑区。
  3. tagbar窗口。
  4. ariline窗口。文件状态。

nerdtree

是一个用于浏览文件系统的树形资源管理外挂,它可以让你像使用Windows档案总管一样在VIM中浏览文件系统并且打开文件或目录。内挂是谁呢:E,有兴趣的大神也可以去瞅一瞅。

使用方式

#移动到文件窗口,一般是放置在左侧:ctrl+W+h。如果你是放右侧那就使用ctrl+w+l,也可以使用ctrl+W+w切换。 ctrl + w + h    光标 focus 左侧树形目录 #打开文件。有加g和没加g的区别是:加g,光标还在文件目录上;没加g,光标会跳到新窗口或者标签 o       在已有窗口中打开文件、目录或书签,并跳到该窗口 go      在已有窗口 中打开文件、目录或书签,但不跳到该窗口 t       在新 Tab 中打开选中文件/书签,并跳到新 Tab T       在新 Tab 中打开选中文件/书签,但不跳到新 Tab i       split 一个新窗口打开选中文件,并跳到该窗口 gi      split 一个新窗口打开选中文件,但不跳到该窗口 s       vsplit 一个新窗口打开选中文件,并跳到该窗口 gs      vsplit 一个新 窗口打开选中文件,但不跳到该窗口 #展示收缩文件 O(大写o)递归打开选中 结点下的所有目录 x       合拢选中结点的父目录 X       递归 合拢选中结点下的所有目录 #编程当前文件 e       Edit the current dif D       删除当前书签 #在文件目录间移动 P       跳到根结点 p       跳到父结点 K       跳到当前目录下同级的第一个结点 J       跳到当前目录下同级的最后一个结点 k       跳到当前目录下同级的前一个结点 j       跳到当前目录下同级的后一个结点 #切换根目录,即显示文件目录 C       将选中目录或选中文件的父目录设为根结点 u       将当前根结点的父目录设为根目录,并变成合拢原根结点 U       将当前根结点的父目录设为根目录,但保持展开原根结点 #刷新文件目录 r       递归刷新选中目录 R       递归刷新根结点 #快速切换工作目录 cd      将 CWD 设为选中目录 #退出 q       关闭 NerdTree 窗口

vim-airline

这是一款状态栏增强插件,可以让你的Vim状态栏非常的美观,同时包括了buffer显示条扩展smart tab line以及集成了一些插件。

安装完不需要我们做什么就可以使用了。

我比较懒,所以暂时没有使用它的其他插件和配置。大家有兴趣可以看官网。

Tagbar

和TagList差不多。为什么不使用TagList。因为貌似不更新了。而且Tagbar对面向对象的语言支持更友好些。

查找

ctrlp

是对文件进行模糊的查找,如果你的project目录结构复杂,或者你正在阅读一个较大的项目的话,那么ctrlp可以帮你快速的定位到你想要文件而不必在终端不断的cd、ls。

使用方式

开启搜索:ctrl+p开户搜索后的操作如下

  • F5 刷新
  • Ctrl+F|Ctrl+B 切换模式。
    搜索缓冲区的文件,标记是“buffers”
    菜鸟vimer成长记——第4.1章、通用插件 搜索最近打开的文件,标记是“mru files”
    菜鸟vimer成长记——第4.1章、通用插件 搜索文件,标记是“files”
    菜鸟vimer成长记——第4.1章、通用插件
  • Ctrl+D 切换只搜索文件名还是搜索路径
    搜索的时候包括路径
    菜鸟vimer成长记——第4.1章、通用插件 搜索的时候只搜索文件,此时有一个“by fname”的标识
    菜鸟vimer成长记——第4.1章、通用插件
  • Ctrl+r 切换搜索模式。普通搜索和正则搜索
    正则搜索,此时有一个“regex”的标记,可以使用正则匹配。
    菜鸟vimer成长记——第4.1章、通用插件
  • Ctrl+x 在当前窗口水平分屏打开文件
  • Ctrl+v 同上, 垂直分屏
  • Ctrl+o 打开文件,具体方式可以选择。
  • Ctrl+n|Ctrl+p 搜索的历史记录
  • Ctrl+z 标记多个文件,然后可以使用Ctrl+o打开它们

上面有各种各样的模式。可以混合着使用,感觉太给力了。

菜鸟vimer成长记——第4.1章、通用插件

EasyGrep

暂时没有找到比较好的文本搜索。如果有找到再同步更新。不过有总比没有强。Vim是内置支持Grep的,Vim7.3更是更新了Grep的引擎,在Vim内Grep的速度更快了。但是Vim中的Grep一样不容易掌握,还好有很多简化Grep的插件可以用,包括grep的变种ack,这其中使用起来最方便的,最人性化的要数EasyGrep了。

  1. 可视化的配置界面,可以让你很方便设置搜索路径,配备模式,递归模式等等。
  2. 可以直接搜索当前光标下的单词,你不用再手动输入命令了。
  3. 可以全局查找并替换,这在代码重构的时候特别有用,虽然这是IDE的基本功能,但是在Vim下我还没有看到那个插件做到EasyGrep这么好。用户可以选择是否替换当前匹配项,发现做错了,一个命令就可以取消所有的替换。

使用方法

下面的""指的是 键。大家如果有兴趣也可以自行修改。在.vimrc里添加 let mapleader=',' ,然后就可以使用','当作 键了。

  • /vv 在文件中搜索当前光标下的单词, :Grep word将搜索"word", 如果加叹号:Grep !word表示全词匹配的方式搜索, Grep也可以带参数, 比如:Grep -ir word, r表示递归目录. i表示不区分大小写.
  • /vV 全词匹配搜索, 同:Grep !word;
  • /va 与vv相似, 搜索结果append在上次搜索结果之后;
  • /vA 与vV相似, 搜索结果append在上次搜索结果之后;
  • /vr 替换;
  • /vo 打开选项菜单;可以选择匹配。里面有很多选项,比较重要的是r(递归),i(忽略大小写)

有待解决的问题

还有几个问题不是很舒服,还在找解决办法

  • 怎么像ctrlp那样舒服的打开窗口
  • 怎么一次性还原所有替换过的文本
  • 怎么更快捷的切换查找目录

自动提示

supertab

SuperTab使键入Tab键时具有上下文提示及补全功能

AutoComplPop

装完,啥也不需要做。输入2个以上的字符后就会有提示了。不需要像以前那样还得按键才有提示。结合上面的supertab,这酸爽~~~。当然原来的自动补全的操作还是可以继续使用的。比如Ctrl+X,Ctrl+L等。

娱乐

vim-matrix-screensaver

安装后输入:Matrix。然后就enjoy。

菜鸟vimer成长记——第4.1章、通用插件

配置文件

对应的.vimrc的配置

"===>>>插件配置 "开始页面 Bundle 'mhinz/vim-startify' "窗口 Bundle 'scrooloose/nerdtree' Bundle 'bling/vim-airline' Bundle 'majutsushi/tagbar' "配色 Bundle 'tomasr/molokai' Bundle 'altercation/vim-colors-solarized' "查找文件 Bundle 'kien/ctrlp.vim' "查找文本 Bundle 'vim-scripts/EasyGrep' "自动提示 Bundle 'vim-scripts/AutoComplPop' Bundle 'ervandew/supertab' "娱乐 Bundle 'uguu-org/vim-matrix-screensaver' "===>>>插件设置配置 "===>>>Startify配置 " 设置栏目排序。成对出现,一个标题,一个栏目名。 let g:startify_list_order = [  / ['   These are my bookmarks:'],  / 'bookmarks',  / ['   My most recently used files'],  / 'files',  / ['   My most recently used files in the current directory:'],  / 'dir',  / ['   These are my session和s:'],  / 'sessions',  /] "设置书签,一般都设置常用文件。像这里设置的是配置文件,因为我喜欢经常倒腾这些东西。也可以设置wiki文件页面。 let g:startify_bookmarks = [  / '$VIM/_vimrc'  /] " 起始页显示的列表长度 let g:startify_files_number = 5 " 个性化头部信息定义。如果想定义尾部可以使用startify_custom_footer let g:startify_custom_header = [  / '           ________  __ __        ',  / ' __       //_____  /// // /       ',  / '    __  __ //_/    ___ ___      //___//''/''/ / // /    ',  / '   // /// //// / /'' __` __`/        /'' /''  / / // /_ ',  / '   / / /_/ |/ / /// /// /// /      /'' /''__  / /__ ,__/',  / '    / /___/  / /_/ /_/ /_/ /_/    //_/ //_/  //_//_/_/  ',  / '     //__/    //_///_///_///_/    ///  //_/     //_/    ',      / '            ',      / '      Zhuang Junxiang  ',      / '            ',      / '    1.01 ^ 365 = 37.78            ',      / '    0.99 ^ 365 =  0.02            ',  / '',  / '',  / ] " 设置快捷键 map <F2> :Startify<CR> "===>>>NerdTree配置 " 设置快捷键 map <F3> :NERDTreeMirror<CR> map <F3> :NERDTreeToggle<CR> "===>>>Tagbar配置 " 设置快捷键 nmap <F7> :TagbarToggle<CR>  

为什么不装winmanager和minibufexpl。因为个人习惯一般喜欢让编辑的窗口充满,所以不太愿意切分,如果有需要的时候才调用出来。minibufexpl,一般不会有同时开多个buffer的使用习惯。大家,如果感兴趣可以安装一下。

正文到此结束
Loading...