此配置主要分为三个文件:
vimrc -- 主配置
vimrc.plugin.list -- 插件列表
vimrc.plugin.conf -- 插件配置
配置文件结构清晰,开头处有目录,按 *
键跳转到目录对应的具体配置处,按Ctrl+O
跳转回到目录。
"file文件
"history&undo历史&撤销
"read&write文件读写
"backup备份文件
"swapfile交换文件
"format&coding格式&编码
"view视图
"linebreak换行
"search搜索
"indent&tab缩进&制表符
"fold折叠
"scroll滚屏
"cursor光标
"highlight高亮
"the_custom_color_configuration自定义色彩设置
"statusline状态栏
" 改变默认快捷键
" 标签页操作
" 导入vim插件管理文件
" 编辑新文件时读入样板
" 把整个缓冲区写回到文件前更改时间戳
" 一键编译运行
" 环境保存
"colorschemes主题
"view视图
"tag标签
"search搜索&替换
"snippet模板补全
"括号引号等结对符号匹配
"undo&git
"_project
"other_plugins
"C_&_C++
"MarkDown
"TeX
"Java
"Python
"Perl
"php
"go
"json
"HTML
"CSS
"JavaScript
"_gundo_undotree
"_vim_indent_guides_缩进可视化
"_fswitch_接口与实现快速切换
"_wildfire_快速选中结对符内的文本
"_tabular_快速对齐
"_ctags_基于标签的代码导航
"_YouCompleteMe_基于语义的代码导航
"_tagbar_标签列表
"_NERDTree_工程文件浏览
"_ctrlsf_vim_工程内全局查找光标所在关键字
"_替换函数
"_UltiSnips_模板补全
"_YouCompleteMe补全菜单
"_由接口快速生成实现框架
"_syntastic_语法检查
"_quickrun_一键编译运行
使用vim-plug
为什么用vim-plug而不是Vundle ?
vim-plug设置更简单;安装更新更快;可以很方便地设置成由命令触发加载插件、根据语言类型加载插件,使插件加载更快。
对比如下:
vim-plug | Vundle.vim |
---|---|
call plug#begin('~/.vim/plugins/') Plug 'majutsushi/tagbar',{'on':'TagbarToggle'}' call plug#end() |
filetype off set rtp+=~/.vim/plugins/Vundle.vim call vundle#begin() Plugin 'majutsushi/tagbar' call vundle#end() filetype plugin indent on |
插件管理命令:
:PlugInstall 安装在插件列表中的插件
:PlugUpdate 更新在插件列表中的插件
:PlugUpgrade 更新vim-plug
:PlugClean 删除不在插件列表中的插件
:PlugStatus 查看在插件列表中的插件状态
此配置默认采用solarized主题,由于其在URxvt/XTerm等终端模拟器的256色环境中显示效果不尽如人意,我在vimrc文件highlight设置部分进行了修改。 如果你要修改色彩设置就在highlight部分后修改,因为自定义色彩设置要放在colorscheme和syntax on后才能生效。如果要修改终端模拟器里的vim色彩,我写了一个生成256色表的bash脚本可供参考。
vim是肯定要有的,说说插件吧。
ctags ycm 可用包管理器(apt/aptitude/yum/dnf/pacman/yaourt)安装
ctags/universal-ctags 生成代码标签,支持84种语言
YCM/YouCompleteMe 语义补全
python模块可用pip安装
pep8 Python代码分析
pyflakes Python语法检查
pylint Python代码分析
建议把配置文件都放在~/.vim目录下
git clone https://github.com/philosophos/easy-vimrc.git ~/.vim
打开~/.vim/vimrc.plug.list,用"注释掉不需要的插件,然后:PlugInstall
Space 全局快捷键的前缀,即leader
, 局部快捷键的前缀,localleader
; 从普通模式进入命令模式
U 取消上一次undo
+ 打开折叠
- 关闭折叠
<C-\> {file} 左右分屏并在新窗口打开{file}
<leader><F1> :vert help 左右分屏并在新窗口打开help
<leader>/ 取消搜索结果高亮
<Leader>ud 调用 gundo 树
<leader>ss 保存快捷键
<leader>rs 恢复快捷键
<Leader>i 开/关缩进可视化
<Leader>ch 在*.cpp 和 *.h 间切换
<Leader>sch 子窗口中显示 *.cpp 或 *.h
<S-Tab> 快速对齐,:Tabularize
<Leader>tn 正向遍历同名标签,速记:Tag Next
<Leader>tp 反向遍历同名标签,速记:Tag Previous
<leader>jd 跳转到声明处,速记:Jump to Declaration
<leader>je 跳转到定义处,速记:Jump to dEfinition
<Leader>tb 显示/隐藏标签列表子窗口,速记:Tag Bar
<Leader>fl 显示/隐藏工程文件子窗口,速记:File List
<Leader>sp 工程内全局查找光标所在关键字,速记:Search in Project
<leader>; <C-x><C-o> YCM 集成 OmniCppComplete补全引擎,设置其快捷键
<Leader>r <Plug>(quickrun) 一键编译运行
<F10> :QuickRun<CR> 一键编译运行
C-a 光标移到行首
C-e 光标移到行尾
C-h 光标移到左边窗口
C-j 光标移到下边窗口
C-k 光标移到上边窗口
C-l 光标移到右边窗口
<leader>1 第1个标签页
<leader>2 第2个标签页
<leader>3 第3个标签页
<leader>4 第4个标签页
<leader>5 第5个标签页
<leader>6 第6个标签页
<leader>7 第7个标签页
<leader>8 第8个标签页
<leader>9 第9个标签页
<leader>0 第10个标签页
<leader>th 第一个标签页
<leader>tl 最后一个标签页
<leader>tj 上一个标签页
<leader>tk 下一个标签页
<leader>tt 上一个活跃的标签页
C-t {file} 打开新标签页并编辑 {file},其余和 :edit 类同。
<leader>tb {cmd} 执行 {cmd},如果它打开新窗口,使用新标签页代替。
<leader>td 关闭标签页
<leader>tm [N] 把当前标签页移到第 N 个标签页之后。
用 0 使当前标签页成为首个标签页。
如果没有 N,当前标签页成为最后一个。
<leader>tm +[N] 移动当前标签页向右 (用 + 的话)N 个位置。
<leader>tm -[N] 移动当前标签页向左 (用 - 的话)N 个位置。
vim中文文档 Sourceforget GitHub
vimrc编辑
易水博客:vim使用进阶
vimer的程序世界
vim-闲耘.wiki
Vim_Tips_Wiki
Vim与系统粘贴板之间实现复制、粘贴