一年前我从Vim切换到了WebStorm,是因为WebStorm强大的重构功能,以及Super Search功能。涉及多文件编辑和重构时WebStorm的优势便非常明显。 最近到手了HHKB,从键盘到触摸板的切换还是挺麻烦的,于是Vim编辑的需求又来了。。加之WebStorm经常假死,我决定重新启用Vim。同时重新打造了我的Vim,使它能够满足我在IDE中的所有需求。这篇文章便来记述整个过程,或许有些帮助。先上图:
准备工作安装Git、Homebrew(如果你是Mac),并安装新版本的Vim(>=7.3)。一般linux发行版都会预装Vim,你需要检查一下vim的版本: $ vim --versionVIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jul 4 2015 01:13:13)MacOS X (unix) versionIncluded patches: 1-712Compiled by Homebrew 如果上述命令失败,那么你需要安装一个Vim~ 这里提供了Vim的基本快捷键备忘录。 OSX$ brew update$ brew install vim Linuxapt-get install vim # ubuntupacman -S vim # archlinuxyum install vim # centos VundleVundle是基于Git的vim插件管理工具,是目前最推荐的工具。之前我的 |- doc/| |- emmet.txt| |- NERDCommenter.txt| |- ...|- plugin/| |- emmet.vim| |- NERDCommenter.vim| |- ...|- autoload/| |- emmet.vim| |- NERDCommenter.vim| |- ...|- ftplugin/ 使用Vundle后变成了这样: |- bundle/| |- emmet/| | |- doc/| | |- autoload/| |- NERDCommenter/| | |- doc/| | |- autoload/|- ftplugin/
那么怎么安装Vundle呢? git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim 然后在你的 set nocompatible ' requiredfiletype off ' requiredset rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()Plugin 'gmarik/Vundle.vim'call vundle#end() ' requiredfiletype plugin indent on ' required 然后在vim中运行 窗格管理要把Vim打造成一个IDE,你需要熟悉Vim如何创建窗格,以及如何在窗格间切换。
nnoremap C-J> C-W>C-J>
折叠有些人特喜欢代码折叠,我就在这里列一下如何优雅地折叠代码。首先在 set foldmethod=indentau BufWinLeave * silent mkview ' 保存文件的折叠状态au BufRead * silent loadview ' 恢复文件的折叠状态nnoremap space> za ' 用空格来切换折叠状态 开启以indent来折叠代码后,打开一个文件会发现有缩进的内容全被折叠起来了。所以我们引入一个SimpleFold来更智能地折叠: Plugin 'tmhedberg/SimpylFold'
自动补全自动补全当然是用YCM: Plugin 'Valloric/YouCompleteMe' 然后进行配置就好了,YCM是通过Vim的 我在另一篇博客中有详细介绍了自动补全、语法检查等配置。 项目树这想必是IDE能提供的最大的好处之一,在Vim中可以使用NERDTree来显示文件树,它的快捷键非常多,所以和Vim一样的越用越爽。 Plugin 'scrooloose/nerdtree'' 这个插件可以显示文件的Git增删状态Plugin 'Xuyuanp/nerdtree-git-plugin' 这里给出我的一些NERDTree配置: ' Ctrl+N 打开/关闭map C-n> :NERDTreeToggleCR>' 当不带参数打开Vim时自动加载项目树autocmd StdinReadPre * let s:std_in=1autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | endif' 当所有文件关闭时关闭项目树窗格autocmd bufenter * if (winnr('$') == 1 && exists('b:NERDTreeType') && b:NERDTreeType == 'primary') | q | endif' 不显示这些文件let NERDTreeIgnore=['\.pyc$', '\~$', 'node_modules'] 'ignore files in NERDTree' 不显示项目树上额外的信息,例如帮助、提示什么的let NERDTreeMinimalUI=1 全局搜索WebStrom的全局搜索是我当初使用它的主要原因;而现在全局搜索总是突然崩溃,也是我放弃WebStorm而转到Vim的主要原因。
安装ctrlp: Plugin 'kien/ctrlp.vim' 然后按下 let g:ctrlp_working_path_mode = 'ra'set wildignore+=*/tmp/*,*/node_modules/*,*.so,*.swp,*.zip let g:ctrlp_custom_ignore = {'dir': '\v[\/]\.(git|hg|svn)$', 'file': '\v\.(exe|so|dll)$'} 剪切板剪切板想必是所有Vim用户的痛。但是!在Mac下只需要设置: set clipboard=unnamed 你在Vim中copy的所有内容都会上系统剪切板。在Vim中拷贝内容时,可以切换到拷贝模式防止自动缩进和补全。我的快捷键是 set pastetoggle=F9> 状态栏有没有注意到我酷炫的状态栏?安装一个powerline: Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'} 此外,为了正确显示Powerline的图标,还需要一些设置: set guifont=Inconsolata\ for\ Powerline:h15let g:Powerline_symbols = 'fancy'set encoding=utf-8set t_Co=256set fillchars+=stl:\ ,stlnc:\set term=xterm-256colorset termencoding=utf-8 然后在系统字体库中导入powerline font,如果是Mac的话可以使用Font Book来导入。然后需要设置terminal(iTerm)的non-ASCII字体为PowerlineSymboles: 注释、反注释NERDCommenter是个不错的工具,支持非常多的语言: Plugin 'scrooloose/nerdcommenter' ' commenter: \cc \cu 然后按下 let mapleader=';' Loremipsum哈哈如果你没见过标题中的这个词就可以跳过了。前端开发中通常需要添加一些占位符来让页面看起来有内容又像人话,loremipsum(拉丁语)通常就是这些占位符的起始字符。比如下面一段: Sodales eget, leo. Sed ligula augue, cursus et, posuere non, mollis sitamet, est. Mauris massa. Proin hendrerit massa. Phasellus eu purus. Donec estneque, dignissim a, eleifend vitae, lobortis ut. 安装一个loremipsum即可: Plugin 'vim-scripts/loremipsum' 我还加了点设置来方便控制长度: inoremap Lorem Esc>Esc>:Loremipsum 20CR>inoremap Ipsum Esc>Esc>:Loremipsum 70CR> 这样,当输入 参考链接:
转载请注明来源: http:///2015/11/04/vim-ide.html |
|
来自: yusihai719 > 《vim》