2013年7月31日星期三

VIM 编辑器的改造一

Vim 编辑器的改造一

   市场上众多IDE,简单可以分类概况一下:

   重量级:VS , eclipse ,Netbeans,IntelliJ  等

   中量级:subtext,subline,ultraEdit 等   

   轻量级:notepad等


   神级:VIM / Emacs

(神级也称SB及,有很多人嘲笑黑屏时代原始社会的IDE,个人认为这是癖好问题,至于选择不选择使用这个编辑器依然是自己爱好的事情,据说微软内部人员只用两种编辑器VIM、Emacs, linux之父用的是 emacs的一个小变种等等。关于Vim和Emacs 之争,编辑器之神,神的编辑器,直道现在还未了解。在这里不做叙述,我只表明自己的态度,自己试过emacs,vim,选择了后者。)


   vim 强大在于可扩展性性,使得编辑效率极大的提升,用户可以完全抛弃鼠标,专注于屏幕,强大高效的完成代码的编辑工作。

   用户关系的更多的是Vim的配置,开源的好处就是可以各取所需找到自己想要的东西,当然完全符合自己胃口的东西又是非常难找的。因为网上推荐的很多,同一个功能或许有很多不同但优秀的插件。你不知道哪一个最好,就得一个一个的去实验,发现其中的优劣。然而这个圈子是小众,不可能有大的优胜劣汰,功能性能的插件需要一段时间才能被大家抛弃,优胜劣汰的优势不明显,开源允许各种差异的存在。

 The import thing is u choice !     痛苦就是在于选择的过程。有的插件做的好,学习成本就很小,bug非常小。在这个博文并不是让用户复制联贴我的vimrc的插件,而且向大家推荐好的东西,比较不好的东西。


  首先推荐几个我自己认为写的比较好的blog
  
  1. 子龙山人: http://zilongshanren.com/blog/2013/01/15/vim-the-killer/

  2. vimer: http://www.vimer.cn/

  3. vim 官网 : http://www.vim.org

 下面的内容是自己这几天的总结,里面有自己的喜好,还有对与一些内容的补充。

 插件1:vim 插件管理者   vundle 替换 pathogen

 好处: 1.vundle 在vimrc配置简单
     
        2.vundle可以更新插件,这个功能是重点。

我在这里不叙述了,有人写的比我好,自己看吧,怎么配置怎么用。

blog: http://williamherry.com/blog/2012/07/16/master-vim-01-vundle/

 插件2: vim-airline 替代  powerline  


看着是不是很给力,笔者在用的过程之中遇到了几个问题:

1. 有的时候启动失败,不显示。有的是用户的问题 在linux环境之中 sudo 才显示,有的时候不是这个问题

2. 卡顿现象,时不时出现卡顿反映奇慢的事情。


作者的解释如下:
There's already powerline, why yet another statusline?
  • 100% vimscript; no python needed.
  • small. i want the core plugin to be less than 200 lines as a rule (specifically adhering to the open/closed principle).
  • integrates with a variety of plugins: vim-bufferlinefugitiveunitectrlpminibufexplgundoundotree,nerdtreetagbarsyntastic and lawrencium.
  • looks good with regular fonts and provides configuration points so you can use unicode or powerline symbols.
  • fast to load, taking roughly 1ms. by comparison, powerline needs 60ms on the same machine.
  • fully customizable; if you know a little statusline syntax you can tweak it to your needs.
  • trivial to write colorschemes; for a minimal theme you need to edit 9 lines of colors (please send pull requests).
What about old powerline?
  • the old version still works well, but since it's deprecated new features won't get added.
  • it uses different font codes, which makes it incompatible with other powerline bindings in the same terminal (e.g. bash, zsh, tmux, etc.).
大概的意思就是:用的是vim脚本写的更快,比powerline更NB, 因为我自己比较懒,不想再重新弄了,但是我还是推荐 vim-airline这个新生代。

插件3. 文件浏览插件 NerdTree 和 Ctrlp  

  笔者强烈建议安装 Ctrlp,快捷键 Ctrl + P 


左侧是Nerd 下面是Ctrlp 搜索文件非常方便,在搜索文件时候不一定是全拼文件
如:\wwwroot\china\beijing  可以wwwchbei  就搜索到了

注意: 三个窗口的切换快捷键:Ctrl + W 两次 ,切换到的那一个窗口下面的line颜色条会变化,仔细看一看你自己在的窗口颜色条 ,退出直接 : q 

NerdTree 我一般都不怎么用,把它放到左侧,显示文件目录结构,打开文件一般用CtrlP,时间久了对CtrlP更加依赖


插件4. TagBar插件 显示文件的变量名,以及函数名称,即eclipse的outline

笔者设置了快捷键 F4 呼出,非常方便


在vimrc中的设置

nmap <silent> <F4> :TagbarToggle<CR>

let g:tagbar_ctags_bin = 'ctags'

let g:tagbar_width = 30

全局搜索设置: 

 一直在找全局的搜索设置,很多博文都没有说明白怎么弄,都给力一堆设置,或者copy别人的。用过eclipse就知道它的全局搜索非常厉害。在这个方面,有人用ctags,有人用scope等等

ctags是在项目中生成tags文件,详细记录了类的变量等等,但是有一个问题就是,在用户编辑状态反复生成ctags比较麻烦,好在有人用开源了解决方案,我也觉得比较繁琐。后来经过查找,vim自带的就有全局搜索名为:vimgrep

注意: grep是linux命令 vimgrep是vim命令

语法: vimgrep XXX path  如: vimgrep  def *.py /搜索函数的定义字符



(最下面的小萝莉:Quickfix里面就是内容)如果用户在vimrc里面不设置,搜索结果则覆盖全屏幕,这时候 :cw 一下 把结果放到 Quickfix Window 

语法: cw 把结果放到 Quickfix Window 
     
       cclose 关闭

       cn 下一个


       cp 上一个


笔者稍微参考网上改进了一下,搜索结果以下窗口显示  F5 命令搜索, F6上一个  F7下一个

nnoremap <F5> :vimgrep /word/ **/*.py \| cw

nnoremap <F6> :cp <CR>

nnoremap <F7> :cn <CR>

保存一下,退出vimrc 自己试验一下 F5,更改word内容试一试




以下插件可以参考子龙山人的配置,自己不做阐述只列出必要的插件

插件5:Vim-Surround  强烈推荐极大效率插件

 作用:hello world 加上双引号 ysiw "  即快速又给力非常方便,它的用法参加github上面的说明,这个插件强烈推荐大家使用


插件6:UltiSnips 效率插件,不解释,看视频


插件7:自动补全插件 neocomplcache-clang:解决clang_complete和neocomplcache的冲突

插件8:supertab 


今天就写到这里,下一篇我将阐述vim tab 窗口,窗口分割,调试等等内容,抛砖引玉,希望您的神配置。







没有评论: