第五章 个人优化vim第二步: 开启自带辅助

时间:2022-02-04 17:15:52

 在第一步快捷键修改完成后,个人使用vim编写代码的效率已经提高了不少。

要想知道更好的管理自定义快捷键,可在vim普通模式下输入

:nmap   “显示普通模式下自定义快捷键

或者进入vimrc文件,修改配置

nunmap   “ 删除普通模式下某个自定义快捷键

umapclear  “删除所有普通模式下自定义快捷键


另外vim自身支持非常多的辅助功能,让编写代码更加简洁。

同样打开~/.vimrc配置文件,写入:

"设置行号
set nu
" 开启实时搜索功能
set incsearch
" 搜索时大小写不敏感
set ignorecase
" 关闭兼容模式
set nocompatible
" vim 自身命令行模式智能补全
set wildmenu

 C/C++ 中的代码执行流由复合语句控制,如 if(){} 判断复合语句、for(){} 循环符号语句等等,这势必出现大量缩进。缩进虽然不影响语法正确性,但对提升代码清晰度有不可替代的功效。

在 vim 中有两类缩进表示法,一类是用 1 个制表符('\t'),一类是用多个空格(' ')。

两者并无本质区别,只是源码文件存储的字符不同而已,但缩进可视化插件对两类缩进显示方式不同。

所以我们把制表符和空格统一:

"将制表符扩展为空格
set expandtab
"设置编辑时制表符占用空格数
set tabstop=4
"设置格式化时制表符占用空格数
set shiftwidth=4
"让 vim 把连续数量的空格视为一个制表符
set softtabstop=4

这样无论源代码使用的是哪种缩进方式,都能获得整体统一效果。

尤其阅读其他人的代码时,他们对制表符定义规则与你不同,这时你可以手工执行 vim 的 retab 命令,让 vim 按我们自定义规则重新处理制表符与空格关系。

 代码的美观相当重要,尽管程序的执行结果没有区别,但方便自己或者他人观看:

"开启自动缩进
set ai
"开启智能对齐
set smartindent
经过以上设置,强迫症患者不用为对齐和缩进苦恼,可以得到满足了。

为了提高专注度,我们还可以开启这些辅助功能: 

"禁止光标闪烁
set gcr=a:block-blinkon0
"禁止显示菜单和工具条
set guioptions-=m
set guioptions-=T
"总是显示状态栏
set laststatus=2
"高亮显示当前行/列
set cursorline
set cursorcolumn
对vim默认的字体不满意?

别急,早有人制作发布了一款中文字体用微软雅黑、英文字体用 Consolas 的混合字体 —— yahei consolas hybrid 字体。
号称最适合中国程序员使用的字体,效果非常不错。

" 设置 vim 显示字体
set guifont=YaHei\ Consolas\ Hybrid\ 11.5
  代码折行也不太美观,禁止掉:

" 禁止折行
set nowrap

方便自己能舒适、便利的阅读代码至关重要。

vim自身就支持语法高亮,可以让具有关键字,字符串,数字等具有色彩变化的能力。

而关键字,字符串,数字需要什么样的颜色,是由一个叫做配色方案的文件决定的,该文件通常xxx.vim结尾。

" 开启语法高亮功能
syntax enable
" 允许用指定语法高亮配色方案替换默认方案
syntax on


有时为了去除干扰,集中精力在某部分代码片段上,会把不关注部分代码折叠起来。

vim 自身支持多种折叠:手动建立折叠(manual)、基于缩进进行折叠(indent)、基于语法进行折叠(syntax)、未更改文本构成折叠(diff)等等。
其中,indent(基于缩进)、syntax(基于语法) 比较适合编程,按需选用。
增加如下配置信息:

" 基于缩进或语法进行代码折叠"
set foldmethod=indent
set foldmethod=syntax
" 启动 vim 时关闭折叠代码
set nofoldenable
光标移动到需要位置,快捷键操作:za,打开或关闭当前折叠;zM,关闭所有折叠;zR,打开所有折叠