插件管理工具 Pathogen
Pathogen 是一个vim插件管理工具,使用它来管理其他的vim插件,官方网站
安装 Pathogen
我们首先安装 Pathogen
# 新建2个目录
mkdir -p ~/.vim/autoload ~/.vim/bundle
# 安装Pathogen
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
这时在~/.vim目录下就多了两个文件夹autoload和bundle。
autoload文件夹下有pathogen.vim文件,是安装pathogen的目录;
bundle文件夹是以后安装其他插件的目录,也就是说以后安装vim其他插件都安装在~/.vim/bundle目录下,进行统一的管理。
在 ~/.vimrc 中加入下面的命令使 Pathogen 生效:
"Pathogen配置
execute pathogen#infect()
syntax on
filetype plugin indent on
Ctags和taglist插件
Ctags工具是用来遍历源代码文件生成tags文件,tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。
比如,tags文件就是Taglist和OmniCppComplete工作的基础。
1、安装 Ctags
1、在线安装yum install ctags
2、下载源码编译安装
下载地址:http://ctags.sourceforge.net
./configure
make
sudo make install
使用Ctags
在工程或项目的源码根目录下执行:ctags -R *
-R
表示递归创建,也就是包括源代码根目录(当前目录)下的所有子目录。*
表示所有文件。这条命令会在当前目录下产生一个tags
文件,当用户在当前目录中打开vim时,会自动载入此tags文件
2、安装taglist
taglist下载地址 http://www.vim.org/scripts/script.php?script_id=273
下载后解压放在~/.vim/bundle目录中
配置taglist
在~/.vimrc中加入下面的命令来配置taglist
"taglist配置信息
"快捷键:使用F3打开关闭
map <silent> <F3> :TlistToggle<CR>
let Tlist_Auto_Open=1 " Let the tag list open automatically
let Tlist_Auto_Update=1 " Update the tag list automatically
let Tlist_Compact_Format=1 " Hide help menu
let Tlist_Ctags_Cmd='ctags' " Location of ctags
let Tlist_Enable_Fold_Column=0 "do show folding tree
let Tlist_Process_File_Always=1 " Always process the source file
let Tlist_Show_One_File=1 " Only show the tag list of current file
let Tlist_Exit_OnlyWindow=1 " If you are the last, kill yourself
let Tlist_File_Fold_Auto_Close=0 " Fold closed other trees
let Tlist_Sort_Type="name" " Order by name
let Tlist_WinWidth=30 " Set the window 40 cols wide.
let Tlist_Close_On_Select=1 " Close the list when a item is selected
let Tlist_Use_SingleClick=1 "Go To Target By SingleClick
let Tlist_Use_Right_Window=1 "在右侧显示
在阅读代码时,taglist窗口中会显示当前光标所在的函数,但是taglist切换的比较慢,一般要3-5s才能显示当前函数,可以在 .vimrc 中加入配置让taglist刷新变快。
在 ~/.vimrc 中加入: set updatetime=100
文件浏览插件 NERDTree
NERDTree 是一个文件浏览的插件,可以方便的在vim中浏览项目中的文件。
在使用 NERDTree 的过程中有一些不太方便的地方就是打开的各个文件不共享 NERDTree,所以就需要配合安装一个共享插件 vim-nerdtree-tabs, 这就让你感觉只是打开了一个 NERDTree。
安装 NERDTree 和 vim-nerdtree-tabs
# 进入插件安装目录
cd ~/.vim/bundle
# clone NERDTree
git clone https://github.com/scrooloose/nerdtree.git
# clone vim-nerdtree-tabs
git clone https://github.com/jistr/vim-nerdtree-tabs.git
配置 NERDTree
安装完NERDTree后,在~/.vimrc中配置NERDTree
"NERDTree配置
"快捷键:使用F2打开关闭
"map <F2> :NERDTreeMirror <CR>
"map <F2> :NERDTreeToggle <CR> "开关NERDTree
map <F2> :NERDTreeTabsToggle <CR> "开关NERDTree tab版, 需要安装vim-nerdtree-tabs插件
"NERDTree配置
let NERDChristmasTree=1 "显示增强
let NERDTreeAutoCenter=1 "自动调整焦点
let NERDTreeShowFiles=1 "显示文件
let NERDTreeShowLineNumbers=1 "显示行号
let NERDTreeHightCursorline=1 "高亮当前文件
let NERDTreeShowHidden=0 "显示隐藏文件
let NERDTreeMinimalUI=0 "不显示'Bookmarks' label 'Press ? for help'
let NERDTreeWinSize=31 "窗口宽度
let NERDTreeWinPos='left' "窗口位置在左边
"当NERDTree为剩下的唯一窗口时自动关闭
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
"打开vim时自动打开NERDTreetab
let g:nerdtree_tabs_open_on_console_startup=0
NERDTree 的一些基本操作
-
?
: 快速帮助文档 -
o
: 打开一个目录或者打开文件,创建的是 buffer,也可以用来打开书签 -
go
: 打开一个文件,但是光标仍然留在 NERDTree,创建的是 buffer -
t
: 打开一个文件,创建的是Tab,对书签同样生效 -
T
: 打开一个文件,但是光标仍然留在 NERDTree,创建的是 Tab,对书签同样生效 -
i
: 水平分割创建文件的窗口,创建的是 buffer -
gi
: 水平分割创建文件的窗口,但是光标仍然留在 NERDTree -
s
: 垂直分割创建文件的窗口,创建的是 buffer -
gs
: 和 gi,go 类似 -
x
: 收起当前打开的目录 -
X
: 收起所有打开的目录 -
e
: 以文件管理的方式打开选中的目录 -
D
: 删除书签 -
P
: 大写,跳转到当前根路径 -
p
: 小写,跳转到光标所在的上一级路径 -
K
: 跳转到第一个子路径 -
J
: 跳转到最后一个子路径 -
<C-j>
和<C-k>
: 在同级目录和文件间移动,忽略子目录和子文件 -
C
: 将根路径设置为光标所在的目录 -
u
: 设置上级目录为根路径 -
U
: 设置上级目录为跟路径,但是维持原来目录打开的状态 -
r
: 刷新光标所在的目录 -
R
: 刷新当前根路径 -
I
: 显示或者不显示隐藏文件 -
f
: 打开和关闭文件过滤器 -
q
: 关闭 NERDTree -
A
: 全屏显示 NERDTree,或者关闭全屏
自动补全插件 Vim-EasyComplete
Vim-EasyComplete是一个代码自动补全插件
安装Vim-EasyComplete
# 进入插件安装目录
cd ~/.vim/bundle
# 同时安装 EasyComplete、vim-dictionary、snipmate
git clone https://github.com/tomtom/tlib_vim.git
git clone https://github.com/MarcWeber/vim-addon-mw-utils.git
git clone https://github.com/garbas/vim-snipmate.git
git clone https://github.com/honza/vim-snippets.git
git clone https://github.com/jayli/vim-easycomplete.git
git clone https://github.com/jayli/vim-dictionary.git
配置Vim-EasyComplete
在 ~/.vimrc 中加入下面的命令来配置Vim-EasyComplete
"配置Vim-EasyComplete
"使用 Tab 键呼出补全菜单
imap <Tab> <Plug>EasyCompTabTrigger
imap <S-Tab> <Plug>EasyCompShiftTabTrigger
"弹窗样式配置,这里提供了两个默认样式配置,暗:dark,亮:light,通用:rider
let g:pmenu_scheme = 'dark'