工欲善其事,必先利其器
为了提高自己的coding效率,特地花了一段时间研究vim及其插件的配置,现在整理出来:便于自己日后更新修改,现在分享出来供大家参考。
(持续更新……)
插件管理利器
作者是tpope,tpope贡献了很多实用的vim插件,他的github:tpope (Tim Pope) · GitHub
Installation:
mkdir -p ~/.vim/autoload ~/.vim/bundle;
cd cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdtree.git
在.vimrc里添加下面代码(后面两行避免重复):
execute pathogen#infect()
syntax on
filetype plugin indent on
pathogen加载插件的机制,是通过runtime命令,runtime bundle/vim-pathogen.git/autoload/pathogen.vim
,去动态的将~/vim/bundle目录中的插件添加到 vim的运行时环境。
插件集合
The NERD Tree
作者是scrooloose· GitHub
Installation:
cd ~/.vim/bundle
git clone https://github.com/wo142857/vim-nerdtree.git
Then reload vim, run :Helptags
, and check out :help NERD_tree.txt
.
使用方法:
:NERDTree #打开用户目录
:o #打开
:t #在新tab下打开
? #帮助
Installation:
sudo yum install ctags
使用方法:
生成tags,定位到源码目录的上层运行
cd /home/liu/java/Test
ctags -R
vim src/Test.java
:set tags=/home/liu/Test/tags
把光标定位到某一函数名上, 按下 Ctar + ], vim就可以自动切换到该函数定义处!
要返回只需要按下Ctrl + t .
更多用法, 在vim命令模式输入 :help usr_29 查看即可.
TagList a source code browser
高效地浏览源码, 列出当前文件中的所有类,成员变量,方法等.
Installation:
cd ~/.vim/bundle
git clone https://github.com/vim-scripts/taglist.vim.git
~/.vimrc中添加:
"设置ctags路径
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
"启动vim后自动打开taglist窗口
let Tlist_Auto_Open = 1
"不同时显示多个文件的tag,仅显示一个
let Tlist_Show_One_File = 1
"taglist为最后一个窗口时,退出vim
let Tlist_Exit_OnlyWindow = 1
"taglist窗口显示在右侧,缺省为左侧
let Tlist_Use_Right_Window =1
"设置taglist窗口大小
"let Tlist_WinHeight = 100
let Tlist_WinWidth = 40
"设置taglist打开关闭的快捷键F8
noremap <F8> :TlistToggle<CR>
"更新ctags标签文件快捷键设置
noremap <F6> :!ctags -R<CR>
Installation:
cd ~/.vim/bundle
git clone https://github.com/vim-scripts/javacomplete.git
cd ~/.vim/bundle/javacomplete/autoload
javac Reflection.java
设置java classpath 将 ~/.vim/bundle/javacomplete/autoload 路径加入到CLASSPATH目录下
~/.vimrc中添加:
autocmd Filetype java set omnifunc=javacomplete#Complete
autocmd Filetype java set completefunc=javacomplete#CompleteParamsInf
Ctrl+n,实现代码补全。
Syntastic
语法检查
Installation:
cd ~/.vim/bundle
git clone https://github.com/scrooloose/syntastic.git
~/.vimrc中添加:
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0