morelinux@gx 人生五十年 如梦亦如幻 有生斯有死 壮士何所憾

vim使用

2017-11-28

Vim 使用

Vim配置文件

配置文件~/.vimrc

https://github.com/daybreakgx/daybreakgx.github.io/tree/master/workspace/vim_config/vim.vimrc
if filereadable(expand('~/.vimrc.bundle'))
    source ./.vimrc.bundle
endif

set nocompatible
set nu
filetype indent on
filetype plugin on

Vundle

vundle是一个开源的vim插件管理工具,源代码地址为 https://github.com/VundleVim/Vundle.vim

Vundle安装

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

在.vimrc中添加vundle支持

if filereadable(expand('~/.vimrc.bundle'))
    source ./.vimrc.bundle
endif

.vimrc.bundle中配置如下:

filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
call vundle#end()

Bundle 'ctags.vim'

https://github.com/daybreakgx/daybreakgx.github.io/tree/master/workspace/vim_config/vim.vimrc.bundles
  • 将想要安装的插件,填写到vundle#begin和vundle#end之间
  • 保存之后,安装插件的方法有以下两种
    • vim中输入 :PluginInstall
    • 在linux中执行 vim +PluginInstall +qall

常用插件

NERDTree插件

NERDTree配置文件

" 设置快捷键, 注意冒号前面有个空格
nmap <F2> :NERDTree<CR>

“ 显示行号
let NERDTreeShowLineNumbers=1
” 显示隐藏文件
let NERDTreeShowHidden=1
" 显示书签列表
let NERDTreeShowBookmarks=1
" 设置宽度
let NERDTreeWinSize=30

NERDTree快捷键

  • ? 帮助文档
  • o 打开一个目录,文件或书签,光标跳转到打开的文件
  • go 打开一个文件,但是光标仍然留在NERDTree
  • t 在新的tab中打开一个文件或书签, 使用gt进行tab之间切换
  • T 在新的tab中打开一个文件,但是光标留在NERDTree,对书签同样
  • x 收起当前打开的目录
  • D 删除书签
  • P 大写,跳转到当前跟路径
  • p 小写,跳转到光标所在的上一级路径
  • K 跳转到第一个子路径
  • J 跳转到最后一个子路经
  • q 退出NERDTree
  • A 全屏显示NERDTree或退出全屏显示
  • m 打开NERDTree Menu
  • C 设置当前目录为根目录
  • K 跳转到当前光标所在那一级的第一个子节点
  • J 跳转到当前光标所在那一级的最后一个子节点
  • r 刷新当前光标节点
  • R 刷新根目录
  • ma 创建目录或文件

vim-nerdtree-tabs

https://github.com/Xuyuanp/nerdtree-git-plugin

插件配置

let g:NERDTreeIndicatorMapCustom = {
    \ "Modified"  : "✹",
	\ "Staged"    : "✚",
	\ "Untracked" : "✭",
	\ "Renamed"   : "➜",
	\ "Unmerged"  : "═",
	\ "Deleted"   : "✖",
	\ "Dirty"     : "✗",
	\ "Clean"     : "✔︎",
	\ 'Ignored'   : '☒',
	\ "Unknown"   : "?"
	\ }

ctags

https://github.com/vim-script/ctags.vim
sudo apt install ctags

生成tags文件 在项目根目录执行ctags -R

插件设置

" 设置tags的搜索路径,分号表示向上搜索,首先会在当前文件所在文件夹里面搜索tags,没有的话搜索上一级,直到搜索到根目录
set tags=./tags;,tags

快捷键

  • ctrl+] 跳转到光标所在变量或函数定义的源文件中
  • ctrl+t 跳转到原来的地方
  • :tag start 跳转到start的定义处
  • :tags 列出搜索过哪些tag
  • :tag 跳转到前一个浏览过的tag处
  • :ts xxx 列出所有匹配xxx的代码及其所属文件,可以通过数字选择浏览
  • :ts 列出前一个搜索过的tag的所有匹配的代码及其所属文件
  • :tf go to first match
  • :tl go to last match
  • :[count]tp go to [count] previous match
  • :[count]tn go to [count] next match

taglist

https://github.com/vim-script/taglist.vim

插件配置

" 设置ctags路径
let Tlist_Ctags_Cmd='/usr/bin/ctags'
" 启动vim后自动打开taglist
let Tlist_Auto_Open=1
" 不同时显示多个文件的taglist
let Tlist_Show_One_File=1
" taglist为最后一个窗口时退出vim
let Tlist_Exit_OnlyWindow=1
" 设置taglist在右边显示
let Tlist_Use_Right_Window=1
" 设置打开关闭taglist的快捷键
nmap <F8> :TlistToggle<CR>
" 更新ctags标签文件快捷键
nmap <F6> :!ctags -R<CR>

快捷键

  • o 在新窗口中显示光标所在的tag
    • 展开一个折叠,同zo
    • 将tag折叠,同zc
  • = 将所有tag都折叠,同zM
    • 将所有tag都展开,同zR
  • x 放大/缩小taglist窗口
  • u 更新taglist窗口中的tag
  • s 更改taglist中tag的排列顺序,在按名字和按照出现顺序之间切换

cscope

https://github.com/vim-script/cscope.vim
sudo apt install cscope

生成cscope文件 在项目根目录执行cscope -Rqb

  • R 递归所有的子目录中的文件
  • q 生成倒排索引,使得符号查找更快,用这个命令后会生成cscope.in.out和cscope.po.out
  • b 生成符号表,但不自动进入交互界面

powerline

https://github.com/powerline/powerline
Bundle安装
powerline/powerline

插件配置

" 总是显示状态栏
set laststatus=2
" powerline显示背景颜色
set t_Co=256
let g:Powerline_symbols='unicode'

Similar Posts

下一篇 Ubuntu常用总结

Comments