@(IPCam)[vim, 插件, vundle, ubuntu]
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
# Github 上的插件代码使用"作者名+仓库名"的方式添加
Plugin 'tpope/vim-fugitive'
# 官方org网站上的插件,使用官方的名字 http://vim-scripts.org/vim/scripts.html
Plugin 'L9'
# 非github上的git仓库的代码,使用下面的形式
Plugin 'git://git.wincent.com/command-t.git'
# 本地的插件添加方式
Plugin 'file:///home/gmarik/path/to/plugin'
# 其他目录的插件添加方式
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
# 同名插件的处理
Plugin 'ascenator/L9', {'name': 'newL9'}
" 所有插件必须写在 vundle#begin和#end之间
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
ctags是一个linux程序,对目录中的文件处理生成一个tags数据库,然后vim就可以调用这个数据库,显示文件中变量和函数关系等信息。
安装直接使用apt-get。
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
在vimrc文件中加入这段代码,将Ctrl+F12组合键映射为ctags生成数据库文件。
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
也直接shell运行这个代码。
Ctrl+]
跳转到光标所选处的定义Ctrl+T
回到跳转前的位置Cscope提供交互式查询语言符号功能,如查询哪些地方使用某个变量或调用某个函数。类似sourceinsight中的全局查找功能。
vim一般自带cscope。vim中使用:version
命令查看是否支持cscope。不支持再用apt-get安装。
插件安装:
使用方法:
是一个显示代码中函数变量等定义结构的窗口插件。它是一个插件,使用上一章中的方法安装。
帮助文档的建立
安装完成后,进入~/.vim/…/doc文件夹,进入vim使用:helptags .
命令加入帮助文档,使用:help taglist
命令查看帮助。
配制
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
只显示一个窗口,只有tlist窗口时退出。
使用方式 :
1. :TlistToggle
启动,再次输入关闭
2. Ctrl+w
或者鼠标点击,切换窗口
omniCppComplete:c++代码的自动补全功能。是一个插件,安装方法相同。生成帮助文档相同。
superTab:Tab上下文自动补齐。
.vimrc配置
set nocp
filetype plugin on
这三个插件是用来优化vim的界面的布局。nerdtree是一个树形的文件夹浏览的窗口,minibuExplorer类似vs中的缓冲buf界面。
winmanager是用来组织这几个窗口的插件
安装
安装的方式如同插件安装方式。
配置
"设置nerdtree"
let g:NERDTree_title="[NERDTree]"
"设置窗口的布局,还是去掉BufExploer比较好,加上关闭时有bug"
let g:winManagerWindowLayout="NERDTree|TagList,BufExplorer"
"根据NERDTree要求加入如下代码"
function! NERDTree_Start()
exec 'NERDTree'
endfunction
function! NERDTree_IsValid()
return 1
endfunction
"设置多键快捷键,按wm打开winmanager"
nmap wm :WMToggle<cr>
map <F8> :WMToggle<cr>
自动打开winmanager
在.vimrc中加入
"设置vim启动时是否显示nerdtree和taglist。"
let g:AutoOpenWinManager = 0
在winmanager.vim中加入
f g:AutoOpenWinManager
autocmd VimEnter * nested call s:ToggleWindowsManager()|1wincm w
NERDTree出现空白窗口的问题
主要的解决方式是启动时关闭那个窗口,修改winmanager.vim中的代码,参考链接vim winmanager中添加nerdtree
function! <SID>ToggleWindowsManager()
if IsWinManagerVisible()
call s:CloseWindowsManager()
else
call s:StartWindowsManager()
"添加该语句,主要是解决当我们打开wm时会多出一个空白窗口,要把它关闭(这是winmanager中的一个bug)"
exec 'q'
end
endfunction
vim神插件
* 文件跳转 ctrlp
* 自动补全 YouCompleteMe
* ag.vim 内容查找
* vim-airlin 帅
* tagbar 代码分析
知乎王路飞的答案
spf13\kvim\fisa