当前位置: 首页 > 工具软件 > Vim IDE > 使用案例 >

vim IDE打造

阎啸
2023-12-01

vim IDE打造

@(IPCam)[vim, 插件, vundle, ubuntu]


vundle插件管理器

vundle官方github网站

  • 首先从github上将vundle仓库克隆到./vim/bundle/Vundle.vim
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  • 配置.vimrc 文件(.vimrc是vim的配置文件) 官方的rc文件实例,我的解释
" 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
  • 在vim中安装
    在vim中输入以下的指令完成vim中安装
" 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/cscope/taglist/winmanager/nerdtree插件

ctags插件

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插件

Cscope提供交互式查询语言符号功能,如查询哪些地方使用某个变量或调用某个函数。类似sourceinsight中的全局查找功能。

vim一般自带cscope。vim中使用:version命令查看是否支持cscope。不支持再用apt-get安装。

插件安装:

使用方法:

taglist

是一个显示代码中函数变量等定义结构的窗口插件。它是一个插件,使用上一章中的方法安装。

帮助文档的建立
安装完成后,进入~/.vim/…/doc文件夹,进入vim使用:helptags .命令加入帮助文档,使用:help taglist命令查看帮助。

配制

let Tlist_Show_One_File=1  
let Tlist_Exit_OnlyWindow=1 

只显示一个窗口,只有tlist窗口时退出。

使用方式
1. :TlistToggle启动,再次输入关闭
2. Ctrl+w或者鼠标点击,切换窗口

omniCppComplete\superTab

omniCppComplete:c++代码的自动补全功能。是一个插件,安装方法相同。生成帮助文档相同。
superTab:Tab上下文自动补齐。

.vimrc配置

set nocp  
filetype plugin on  

winmanager/nerdtree/minibufExporer

这三个插件是用来优化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 代码分析

完整的vim配置

知乎王路飞的答案
spf13\kvim\fisa

 类似资料: