如何配置Vimrc文件
如何配置Vimrc文件
在炮制你自己的.vimrc配置时, 这里只有一个原则.
不要把任何你不理解的一行放到你的vimrc中.
互联网上有以吨计的入门手册, 诸如这篇文章. 它们之中包含各种令人惊叹的Hack技巧, 这可以记你的Vim更好, 但为了让你的环境更好完全从别人那儿照搬那些配置, 完全是 最糟糕 的做法.
真真切切地花一些时间来学习你的编辑器的构造, 其价值无可估量. 从投影仪上手抄下来通常会有且于增多的信息逐渐保留, 同样的道理, 将特性一个一个地添加到你的vimrc有助于提高你对Vim的总体理解程度.
因此, 这篇文章余下部分将会是我来解释我当前vimrc中的全盘使用的每一行, 希望你能在其中找到你此前没有见到的技巧. 但, 我的vimrc离完美还差得远. 我也一直在寻找可以使我的环境更好的东西添加进来, 所以如果你认为我遗漏了什么重要的东西, 敬请告之: @duogblackio.
我将按逻辑分成几个部分
- 颜色
- 空格与制表
- UI配置
- 搜索
- 折叠
- 自定义移动
- 自定义Leader按键
- Ctrlp设置
- 启动配置
- Tmux配置
- Autogroups
- 备份
- 自定义函数
- 组织
- 折叠起来
这篇文章几乎肯定会落后于我最近的vimrc, 你可以在 github 上找到最新的vimrc版本.
颜色
colorscheme badwolf " awesome colorscheme
颜色! 配色方案是主观的, 我当前是安顿在Steve Losh所写的badwolf上了. 我发现solarized难以至信的完整, 但也发现就我的品味而言它也那么点儿乏味. 我的大量的时间也是和 molokai 度过的. 并且我仍然认为 molokai 是一个非常好的配色方案, 只是当前更偏好 badwolf.
继续前进
syntax enable " enable syntax processing
注释足以说清它的意思. 我将借这点时间, 尽可能地添加注释, 以避免你的vimrc没有此中的任何一行. 如果你像我一样, 文件写得很长, 基本上你不会一直记住每一行在做什么, 所以添加注释有助于你以后能知道这些都是什么鬼.
另外, 许多 vim 中的设置既有长名又有短名. 例如 background 和 bg 是一样的. 为了此后的可读性, 我强烈建议使用长名.
空格和制表符
要使 tabs/spaces 能像你期望那样正常工作, 你必须将如下像咒语一样的符号, 扔到你的vimrc中. 你可能对这串符号相当困惑, 所以这儿有让你快速进修的说明.
set tabstop=4 " number of visual spaces per TAB
tabstop 就是视觉上显示的一个
set softtabstop=4 " number of spaces in tab when editing
编辑时一个
set expandtab " tabs are spaces
expandtab 会将
(以上几个配置)一起拿走吧, 这些选项是非常不错, 对于编辑那些偏好空格而不是 tab的语言, 因为这可以确保不会使用
用户接口配置
这些选项会改变 vim 中那此散乱的视觉材料.
set number " show line numbers
显示行号, 不解释.
set showcmd " show command in bottom bar
showcmd
显示在最右下角展示最近输入的命令. 我虽然在这里设置了, 但实际上由于我使用powerline插件(稍后我们会涉及到), 所以在我的vim中找不到这一行的.
set cursorline " highlight current line
cursorline 会突出显示(或加下划线, 取决于你的本色方案)你的光标当前所在水平行. 我发觉当你 vim 的多个窗口来回切换或离开 vim 后再切换回来, 这样更容易找到离开时那一行.
filetype indent on " load filetype-specific indent files
这既开启文件类型检测, 又开启基于此检测的与语言相关的缩进文件. 对于我来说, 这意味着, 每当我打开一个 *.py 文件, python 的缩进文件即 ~/.vim/indent/python.vim 将会被加载.
set wildmenu " visual autocomplete for command menu
这是一个相当酷的特性, 我以前都不知道Vim有它. 你知道 Vim 会自动补全类似文件名的东西, 举例子, 运行 :e ~/.vim
set lazyredraw " redraw only when we need to.
Vim 喜欢重绘屏幕, 即便是在它根本不必这样做的期间内 – 比如在宏(回放)的期间. 这告诉 Vim 不要费神地在这些场景下重绘屏幕, 以让宏更快.
set showmatch " highlight matching [{()}]
当你的光标移动到 类似圆括号(译注: <([{都算)字符时, 与之配对的另外一个也会高亮显示.