在第一步快捷键修改完成后,个人使用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,打开所有折叠


更多相关文章

  1. Linux 上传代码到github
  2. linux 下使用 vim+cscope+ctags+taglist+NERDtree实现代码阅读编
  3. 如何查看linux命令源代码和函数源代码
  4. UNIX网络编程之源代码的编译和使用
  5. mt7620的u-boot 代码
  6. 在arcpy中删除或删除表的代码是什么?
  7. iBatis中sqlmap resultclass="java.lang.Integer",在代码中如何
  8. 已有SQLSERVER表如何生成其代码?
  9. SQL Server表中某些字段含有水平制表符、换行符、回车符、反斜杠

随机推荐

  1. 重燃你的PHP安全之火
  2. php函数 什么时候使用fflush函数
  3. 60分钟精通正则表达式
  4. 在提交注册表单时使用jQuery显示错误
  5. PHP 导出 万级别数据 时间测试
  6. PHP面试题集PHP面试题集
  7. 添加到数据库后,保持在同一页面而不刷新它
  8. 使用jQuery或Javascript重定向到具有值的
  9. 在Web Page中包含PHP代码
  10. 求助,Xdebug的配置,缓存问题。