vimrc 配置文件

    在学习 vimrc 之前,我们先来了解下怎样快速配置。

    首先打开练习文件 Object.java,然后进入 command 模式

    回车后,你会发现在编辑器的左边出现了行号。

    这是我们配置编辑器的第一步,我们可以在 command 模式下配置然后预览我们的配置结果,但是当你退出文件再进来,会发现刚才的配置已经失效了,它只在当前缓冲区生效,而想要让配置长久生效,就需要将配置信息放入 vimrc 文件中,这样每次打开 Vim 都会读取配置文件。

    Vim 读取配置的默认路径为 ~/.vimrc,如果你的环境没有需要新建该文件

    1. $ touch ~/.vimrc

    我们在文件中输入设置行号的命令

    1. $ vim ~/.vimrc
    2. set number

    然后退出文件,重新打开 Object.java,会发现行号的配置又生效了。每次使用 Vim 重新打开文件,新加的配置就会生效。

    1. :vsp ~/.vimrc

    如此,我们可以一边编辑文件,一边修改配置了。

    先加上这两行配置,并保存

    然后需要做在 Object.java 中生效,怎么做呢,退出然后重新进来?每次都这样你一定会烦死的,也会显得很蠢(虽然我曾经这样蠢了很久),我们有更好的方法。

    在目标文件中执行如下命令就行了。

    1. :source $MYVIMRC

    $MYVIMRC 在 Vim 环境中代表了 ~/.vimrc 的常量,这句话的意思就是重新加载配置文件,当然你也可以通过 :source ~/.vimrc 来实现。

    1. set nocompatible " 去掉对vi的兼容,让vim运行在完全模式下

    set compatible 就是让 vim 关闭所有扩展的功能,尽量模拟 vi 的行为。但这样就不应用 vim 的很多强大功能,所以一般没有什么特殊需要的话(比如执行很老的 vi 脚本),都要在 vim 的配置开始,写上 set nocompatible,关闭兼容模式。由于这个选项是最最基础的选项,会连带很多其它选项发生变动(称作副作用),所以它必需是第一个设定的选项。

    1. syntax on " 开启语法高亮"

    这个功能对开发尤其有用,Vim 本身是会对一些简单的关键词做高亮处理的,而很多插件对语法高亮也都依赖这个设置。

    1. set autoread " 文件在vim外修改过自动重新载入
    2. au CursorHold,CursorHoldI * checktime

    默认情况下,外部修改了当前打开的文件,Vim 是不会自动重新载入的,加上这两条配置,Vim 会定时检查是否有外部改动并重载,如果改动不及时,你也可以通过 :e 手动加载。

    1. set novisualbell "关掉可视化响铃警报
    2. set noerrorbells "关掉错误警报
    3. set visualbell t_vb= "关掉警报

    闹人的报警声还是挺烦人的,可以关掉它。

    1. set tm=500
    2. set t_Co=256

    显示 256 色,很多主题插件都需要打开它。

    这个配置组非常有用,开启后 Vim 可以根据打开的文件格式显示不同的高亮、使用缩进等。不管是使用插件还是自己写插件对他非常依赖。你可以使用 :filetype 来查看当前文件是否开启文件检测

    1. " encoding
    2. set encoding=utf-8 " 打开文件时编码格式
    3. set fileformat=unix " 设置以unix的格式保存文件"
    4. set fileencoding=utf-8 " 在保存文件时,指定编码
    5. set termencoding=utf-8 " 终端环境告诉vim使用编码
    6. set ffs=unix,dos,mac " 在创建文件或写入时,这三种文件格式分别决定了行末要添加什么特殊字符,而在读入文件时,又分别决定了要从行末移去什么特殊字符。
    7. set formatoptions+=m
    8. " 主题
    9. set background=dark " 配色主题的色系,注意,这不是什么背景色!dark 是暗色系,light 是亮色系。
    10. colorscheme desert " 配色主题的名称,:coloscheme 后键入<tab>可以自动补全 比较喜欢的desert,peachpuff,torte,elfload,slate
    11. " show
    12. set number " 显示行号
    13. set ruler " 显示当前光标行号和列
    14. set wrap " 设置折行 set nowrap 为不折行
    15. set sidescroll=1 " 默认设置set sidescroll=0之下,当光标到达屏幕边缘时,将自动扩展显示1/2屏幕的文本。通过使用set sidescroll=1设置,可以实现更加平滑的逐个字符扩展显示。
    16. set showcmd " 在屏幕右下角显示未完成的命令
    17. set showmode " 显示当前vim模式
    18. set showmatch " 显示匹配的括号
    19. set matchtime=1 " 设置showmatch的效果时间,默认500ms,现在是100ms
    20. set cursorline " 突出显示当前行
    21. set cursorcolumn " 突出显示当前列
    22. set colorcolumn=80 " 设置某一列高亮
    23. " search
    24. set smartcase "搜索时,如果输入大写,则严格按照大小写搜索,如果小写,并设置了ignorecase,则忽略大小写
    25. set ignorecase "搜索时忽略大小写"
    26. set incsearch "搜索时及时匹配搜索内容,需要回车确认
    27. set hlsearch "高亮搜索项"
    28. " tab
    29. set expandtab "将<tab>符号转变为<space>空格
    30. " indent
    31. set autoindent "换行自动缩进
    32. set smartindent "缩进采用c语言风格
    33. set shiftround "在一般模式下键入>>整个缩进shiftwidth的长度,<<反向操作,== 可以与上一行对齐,插入模式下C-T和C-D也可以左右启动
    34. set shiftwidth=4 "缩进的空格数
    35. set tabstop=4 "键入<tab>的步长
    36. set softtabstop=4 " insert mode tab and backspace use 4 spaces
    37. " set mark column color
    38. hi! link SignColumn LineNr
    39. hi! link ShowMarksHLl DiffAdd
    40. hi! link ShowMarksHLu DiffChange
    41. " status line
    42. set statusline=%<%f\ %h%m%r%=%k[%{(&fenc==\"\")?&enc:&fenc}%{(&bomb?\",BOM\":\"\")}]\ %-14.(%l,%c%V%)\ %P
    43. set laststatus=2 " 底部显示两行状态栏"
    44. " select & complete
    45. set selection=inclusive "选择文本事,光标所在位置也会被选中
    46. set selectmode=mouse,key
    47. set scrolloff=5 "距离顶部和底部5行"
    48. set backspace=2 "任何情况允许使用退格键删除
    49. set mouse=a "启用鼠标"
    50. " 代码折叠
    51. set foldlevelstart=99 "默认不折叠"

    剩下这些配置也都很有用,你可以尝试着一个个配置上对比效果。Vim 的配置千变万化,这些只是部分基本配置,基本没有两个人的 vimrc 文件是完全相同,人们会根据当前的学习进度和自己的环境配置不同的样式和功能,这也是 Vim 迷人的地方,构建自己的 IDE,谁不想呢。

    记住,在这个环节需要我们勤用 :help 查看帮助文档,比如 :h showcmd 它的讲解绝对任何人都专业。

    在对 vimrc 有了初步的了解后,以后我们会逐步学习各种高效的配置,让我们的 Vim 越来越得心应手。