资源说明:My vim configuration
= dotvim 个人使用的vim配置文件。本文档主要描述配置文件的安装和更新方法。 == 安装 . 从++github.com++上clone到本地 ** Linux下 + [source,sh] ---- git clone --recursive https://github.com/thawk/dotvim.git ~/.vim ---- ** Windows下使用++TortoiseGit++工具 + 在资源管理器上,右键菜单中,选择++Git clone...++,记得选中++Recursive++选项,这样就可以把++NeoBundle.vim++也一并安装好。 + NOTE: 在Windows下,clone到++\~/vimfiles++会比clone到++~/.vim++更加方便。 . 让vim使用我们的配置文件 + vim缺省会使用++\~/.vimrc++(Windows下使用++~/_vimrc++)配置文件。由于该文件在git管理的范围外,不方便管理,因此可以将通过该文件来调用真正的配置文件(++\~/.vim/vimrc++或++~/vimfiles/vimrc++): ** Linux下 + 运行++bootstrap.sh++,将会建立++~/.vimrc++,并且会建立++~/.vimrc.local++文件 ** Windows下 + 建立++~/_vimrc++,内容如下: + ---- runtime vimrc ---- + 把++vimrc.local.sample++拷贝一份到++~++下,改名为++vimrc.local++ ** 如果vim目录不放在++\~/.vimrc++或++\~/vimfiles++,需要设置++runtimepath++路径,如 + ---- set runtimepath^=d:/vimconfig set runtimepath+=d:/vimconfig/after source d:/vimconfig/vimrc ---- . 运行vim程序,在vim中运行下面的命令以安装其余插件: + ---- :NeoBundleInstall ---- + 由于插件数量比较多,因此可能需要较长的时间。 . 至此,所有配置均已完成,可以开始体验vim了。 == 插件选择 本配置中的插件按用途进行了分组,并可以通过++vimrc.local++文件进行启用及禁用。 缺省禁用了与开发相关的一些插件,可以按需要选择性启用。 == 配置升级 本配置会不定期进行维护、改进,需要的话可以通过下面的步骤更新vim配置文件: . 更新基本vim配置 + vim的基本配置和所要安装的插件信息都存放在++vimrc++文件中,因此需要先进行更新,再更新其余的插件。 + ** Linux下在++~/.vim++下运行++git pull++即可。 ** Windows下可以在++~/vimfiles++目录上右键,选择++Git Pull...++进行更新。 . 清理不再使用的插件 + 可以通过注释++vimrc++中以++NeoBundle++开头的行来达到禁用插件的目的。被禁用的插件不会被vim载入,但还会保留在硬盘上。如果需要的话,可以在vim中运行下面的命令以从硬盘中删除被禁用的插件: + ---- :NeoBundleClean ---- . 升级已有插件,安装新插件 + 可以在vim中运行下面的命令,升级已有插件(会同时安装缺失的插件): + ---- :NeoBundleUpdate ---- + 由于上面的命令会检查所有已安装插件的更新情况,可能需要比较长的时间。如果只想安装缺失的插件,不想更新已有插件,可以运行下面的命令: + ---- :NeoBundleInstall ---- == 快捷键 参照 link:http://spacemacs.org/[spacemacs] 风格进行快捷键设置,将快捷键按功能分组而不是按插件分组,更便于记忆。 NOTE: ````是`` ``。可以在``{tilde}/.vimrc.local``中通过``g:dotvim_user_settings.mapleader``进行修改。 === 搜索和符号查找 ` s` .CtrlSF [options="header"] |=== | 快捷键 | 用途 | 所属插件 | sfp | 项目目录下CtrlSF | ctrlsf.vim | sfP | 项目目录下CtrlSF当前词 | ctrlsf.vim | sff | 当前文件目录下CtrlSF | ctrlsf.vim | sfF | 当前文件目录下CtrlSF当前词 | ctrlsf.vim | sfb | 当前目录下CtrlSF | ctrlsf.vim | sfB | 当前目录下CtrlSF当前词 | ctrlsf.vim |=== .Grep [options="header"] |=== | 快捷键 | 用途 | 所属插件 | / | 在项目目录下进行搜索 | ack.vim | sp | 项目目录下进行搜索 | ack.vim | sP | 项目目录下进行搜索当前词 | ack.vim | sf | 当前文件目录下进行搜索 | ack.vim | sF | 当前文件目录下进行搜索当前词 | ack.vim | sb | 当前目录下进行搜索 | ack.vim | sB | 当前目录下进行搜索当前词 | ack.vim | ss | 在当前文件中查找 | unite.vim | sS | 在当前文件中查找当前词 | unite.vim |=== .Symbol [options="header"] |=== | 快捷键 | 用途 | 所属插件 | s] | 根据上下文进行跳转到定义或引用 | unite-gtags/jedi.vim | sr | 跳转到引用 | unite-gtags/jedi.vim | sR | 跳转到当前词的引用 | unite-gtags/jedi.vim | sd | 跳转到定义 | unite-gtags/jedi.vim | sD | 跳转到当前词的定义 | unite-gtags/jedi.vim | s/ | 列出当前文件中的符号 | unite-gtags |=== .其他 [options="header"] |=== | 快捷键 | 用途 | 所属插件 | sc | :set nohlsearch | 内置 |=== === 文档和帮助 ` h` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | hdb | describe bindings | unite.vim | hdc | 显示当前字符的Unicode名称 | unicode.vim | hdf | 列出所有vim函数 | unite.vim | hdv | 列出所有vim变量 | unite.vim | h | 查找帮助 | unite-help | hm | 查找man pages | vim-ref | hM | 查找man pages(当前word) | vim-ref | ha | 用apropos查找man pages | unite-apropos | hA | 用apropos查找man pages(当前word) | unite-apropos |=== === Resume/Rename/Registers ` r` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | rl | 重新打开最近的Unite窗口 | unite.vim | rr | 将光标下的符号改名 | jedi.vim // | re | 列出kill-ring | neoyank.vim | rm | 列出register | unite.vim | ry | 列出kill-ring | neoyank.vim |=== === 项目 ` p` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | pf | 在项目目录下找文件 | unite.vim | pd | 在项目目录下打开文件浏览器 | dirvish | pg | 找项目中的tag | unite-gtags | p | 更新tags | gtags.vim | pc | 编译构建 | vim-dispatch | pC | Clean | vim-dispatch | pT | 执行测试 | vim-dispatch | ps | make stage | vim-dispatch // | pa | 在实现和测试间跳转 | |=== === 文件 ` f` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | fb | 打开书签 | unite.vim | fd | 在当前文件目录打开文件浏览器 | dirvish | ff | 在当前文件目录找文件 | unite.vim | fs | 保存当前文件 | 内置 | fS | 保存所有文件 | 内置 | fr | 打开recent文件 | neomru.vim // | fl | 在当前文件目录找文件(纯文本) | unite.vim | fy | 显示当前文件的全路径 | 内置 | fo | 打开文件的大纲 | unite-outline | fO | 打开文件的Folding | unite-fold | fp | 查找项目中的路径和文件名 | unite-gtags | fP | 查找项目中匹配当前词的路径和文件名 | unite-gtags // | fL | locate | ? |=== === 缓冲区 ` b` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | bb | 选择并切换缓冲区 | unite.vim | bd | 删除当前缓冲区 | 内置 | bn | 打开下一缓冲区(:bnext) | 内置 | bp | 打开上一缓冲区(:bprevious) | 内置 | bR | 重新载入当前文件(:e) | 内置 | bs | 打开或切换到scratch | scratch.vim | bt | 在当前目录打开目录树 | scratch.vim | bw | 切换只读状态 | 内置 | b数字 | 切换到指定编号的缓冲区 | 内置 |=== === 调试 ` d` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | db | 设置/切换断点 | Conque-GDB | dd | 删除断点 | Conque-GDB | dc | 继续运行,Continue | Conque-GDB | dr | 开始运行,Run | Conque-GDB | dn | 单步步过,Next | Conque-GDB | ds | 单步进入,Step | Conque-GDB | dp | 打印,Print | Conque-GDB | df | 执行到返回,Finish | Conque-GDB | dt | 打印堆栈,Backtrace | Conque-GDB |=== === 编译 ` c` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | cc | 编译 | // | cC | compile | // | cd | close compilation window | // | ck | kill compilation | // | cm | helm-make | // | cr | recompile | | cl | 注释选中行 | | c+动作 | 注释。如 cip注释一个段落 | |=== === 文本Text相关 ` x` .对齐 [options="header"] |=== | 快捷键 | 用途 | 所属插件 | 选中文字后 | 交互式对齐文本 | vim-easy-align | xa+动作 | 交互式对齐文本 | vim-easy-align | xad | 对齐{cpp}的变量声明 | vim-easy-align | xa= | 对齐包含等号的操作符,如=、>=、!=之类 | vim-easy-align | xa: | 对齐冒号 | vim-easy-align | xa. | 对齐句点 | vim-easy-align | xa, | 对齐所有逗号 | vim-easy-align | xa& | 对齐Latex表格 | vim-easy-align | xa# | 对齐# | vim-easy-align | xa" | 对齐" | vim-easy-align | xa{ | 对齐左大括号 | vim-easy-align | xa} | 对齐右大括号 | vim-easy-align | xa/ | 对齐多种注释 | vim-easy-align | xa{vbar} | 对齐所有表格线({vbar}) | vim-easy-align | xa | 对齐所有空白字符 | vim-easy-align |=== .其它 [options="header"] |=== | xdw | 删除行尾空白字符 | 内置 // | xtc | 交换两个字符 | 内置 // | xtw | 交换两个word | 内置 // | xtl | 交换两行 | 内置 |=== === 插入内容 ` i` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | iu | 搜索并插入Unicode字符 | unite-unicode | is | 选择追加snippets | ultisnips | iS | 选择插入snippets | ultisnips |=== === 切换开关 ` t` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | ti | 切换高亮显示indentation guide | indentLine | tw | 切换高亮显示行尾空白字符 | vim-airline | tn | 切换显示行号 | 内置 | tr | 切换相对行号 | 内置 | tha | 切换高亮当前词 | 内置 | ts | 选择colorscheme | unite-colorscheme | tt | 切换Tagbar | tagbar | tT | 在Tagbar中显示当前符号 | tagbar |=== === 窗口 ` w` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | | 当前窗口切换为上一buffer | 内置 | ww | 切换到下一个窗口 | 内置 | wc | 关闭当前窗口 | 内置 | wo | 只保留当前窗口 | 内置 // | wW | 选择并切换窗口 | | 数字 | 切换到指定编号的窗口 | 内置 |=== // === 注释 ` ;` // // [options="header"] // |=== // | 快捷键 | 用途 | 所属插件 // | ; | 注释 operator | tcomment_vim // | ;; | 注释当前行 | tcomment_vim // |=== === 错误处理 ` e` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | eo | 打开quickfix | 内置 | el | 打开location | 内置 | en | 下一个错误 | 内置 | ep | 上一个错误 | 内置 |=== // === vim配置文件 ` fe` // // [options="header"] // |=== // | 快捷键 | 用途 | 所属插件 // | fed | 打开vimrc文件 | 内置 // | feR | 重新载入vimrc文件 | 内置 // |=== === 版本控制git/svn ` g` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | ga | 加入文件(VCAdd) | vc.vim | gb | 查看每行的最后修改人(VCBlame) | vc.vim | gc | 提交(VCCommit) | vc.vim | gd | 列出修改点(VCDiff) | vc.vim | gD | 列出修改点(VCDiff!) | vc.vim | gh | 文件历史(VCLog) | vc.vim | gi | 文件历史(VCInfo) | vc.vim | gi | 查看文件信息(VCInfo) | vc.vim | gs | 查看整个库的状态(VCStatus) | vc.vim | gsp | 同 gs | vc.vim | gsb | 查看当前目录的状态(VCStatus .) | vc.vim | gsq | (SVN)查看有哪些变化的文件(VCStatus -qu) | vc.vim | gsu | (SVN)查看有哪些可以update的文件(VCStatus -u) | vc.vim |=== === 退出 ` q` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | qq | 退出Vim(:qa) | 内置 | qQ | 退出Vim(:qa!,放弃所有修改) | 内置 | qs | 并退出Vim(:xa,保存所有文件) | 内置 |=== === 跳转 ` j` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | jd | 在当前窗口打开文件浏览器 | dirvish | jl | (easymotion-bd-jk) | vim-easymotion | jw | (easymotion-s2) | vim-easymotion | j= | 格式化选区或整个buffer | clang-format |=== === 代码跳转 ` mg` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | mga | 在.h和.cpp间切换 | vim-fswitch | mgA | 在.h和.cpp间切换(新窗口) | vim-fswitch // | mgt | 切换到单元测试文件 | |=== === REPL ` ms` 小写保持焦点在当前缓冲区,大写切换到REPL窗口。 [options="header"] |=== | 快捷键 | 用途 | 所属插件 | msb | 发送整个缓冲区 | slimux | msl | 发送当前行 | slimux | msr | 发送选中内容 | slimux | msq | 关闭 | slimux | mse | 重复上一次 | slimux |=== === Unite ` u` [options="header"] |=== | 快捷键 | 用途 | 所属插件 | ur | 打开或关闭Unite窗口 | unite.vim | uc | 打开或关闭Unite窗口 | unite.vim | up | 跳到Unite窗口的上一项 | unite.vim | un | 跳到Unite窗口的下一项 | unite.vim | us | 列出所有Unite的源 | unite.vim | um | 列出message | unite.vim |=== === 其它 [options="header"] |=== | 快捷键 | 用途 | 所属插件 | ? | 列出可用的按键绑定 | unite.vim | au | UndotreeToggle | undotree | j= | 格式化整个文件(mzgg=G`z) | 内置 | 数字 | 切换到指定编号的Tab页 | 内置 |===
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。