vim作为一款功能强大、选项丰富的编辑器,为许多用户所热爱。本文介绍了一些在vim中默认未启用但实际非常有用的选项。虽然可以在每个vim会话中单独启用,但为了创建一个开箱即用的高效编辑环境,还是建议在vim的配置文件中配置这些命令。
开始前的准备
这里所说的选项或配置均位于用户主目录中的vim启动配置文件.vimrc。 按照下面的说明在.vimrc中设置选项:
(注意:vimrc文件也用于linux中的全局配置,如/etc/vimrc或/etc/vim/vimrc。本文所说的.vimrc均是指位于用户主目录中的.vimrc文件。)
linux 系统中:
用vim打开.vimrc文件:vim ~/.vimrc
复制本文最后的选项列表粘贴到.vimrc文件
保存并关闭 (:wq)
(lctt 译注:此处不建议使用vim编辑.vimrc文件,因为很可能无法粘贴成功,可以选择gedit编辑器编辑.vimrc文件。)
windows 系统中:
首先,安装 gvim
打开gvim
单击 “编辑” -> “启动设置”,打开_vimrc文件
复制本文最后的 “选项列表” 粘贴到_vimrc文件
单击 “文件” -> “保存”
(lctt 译注:此处应注意不要使用windows自带的记事本编辑该_vimrc文件,否则可能会因为行结束符不同而导致问题。)
下面,我们将深入研究提高vim编辑效率的选项。主要分为以下几类:
缩进 & 制表符
显示 & 格式化
搜索
浏览 & 滚动
拼写
其他选项
1. 缩进 & 制表符
使vim在创建新行的时候使用与上一行同样的缩进:
set autoindent
创建新行时使用智能缩进,主要用于 c 语言一类的程序。通常,打开 smartindent 时也应该打开 autoindent:
set smartindent
注意:vim 具有语言感知功能,且其默认设置可以基于文件中的编程语言来改变配置以提高效率。有许多默认的配置选项,包括 axs cindent,cinoptions,indentexpr 等,没有在这里说明。 syn 是一个非常有用的命令,用于设置文件的语法以更改显示模式。
(lctt 译注:这里的 syn 是指 syntax,可用于设置文件所用的编程语言,开启对应的语法高亮,以及执行自动事件 (autocmd)。)
设置文件里的制表符 (tab) 的宽度(以空格的数量表示):
set tabstop=4
设置移位操作 >> 或 << 的缩进长度(以空格的数量表示):
set shiftwidth=4
如果你更喜欢在编辑文件时使用空格而不是制表符,设置以下选项可以使 vim 在你按下 tab 键时用空格代替制表符。
set expandtab
注意:这可能会导致依赖于制表符的 python 等编程语言出现问题。这时,你可以根据文件类型设置该选项(请参考 autocmd)。
2. 显示 & 格式化
要在每行的前面显示行号:
set number
要在文本行超过一定长度时自动换行:
set textwidth=80
要根据从窗口右侧向左数的列数来自动换行:
set wrapmargin=2
(lctt 译注:如果 textwidth 选项不等于零,本选项无效。)
当光标遍历文件时经过括号时,高亮标识匹配的括号:
set showmatch
3. 搜索
高亮搜索内容的所有匹配位置:
set hlsearch
搜索过程中动态显示匹配内容:
set incsearch
搜索时忽略大小写:
set ignorecase
在打开 ignorecase 选项的条件下,搜索内容包含部分大写字符时,要使搜索大小写敏感:
set smartcase
例如,如果文件内容是:
test
test
当打开ignorecase和smartcase选项时,搜索test时的突出显示:
testtest
搜索test时的突出显示:
testtest
4. 浏览 & 滚动
为获得更好的视觉体验,你可能希望将光标放在窗口中间而不是第一行,以下选项使光标距窗口上下保留 5 行。
set scrolloff=5
一个例子:
第一张图中scrolloff=0,第二张图中scrolloff=5。
提示:如果你没有设置选项nowrap,那么设置sidescrolloff将非常有用。
在vim窗口底部显示一个永久状态栏,可以显示文件名、行号和列号等内容:
set laststatus=2
5. 拼写
vim有一个内置的拼写检查器,对于文本编辑和编码非常有用。vim可以识别文件类型并仅对代码中的注释进行拼写检查。使用下面的选项打开英语拼写检查:
set spell spelllang=en_us
(lctt 译注:中文、日文或其它东亚语字符通常会在打开拼写检查时被标为拼写错误,因为拼写检查不支持这些语种,可以在 spelllang 选项中加入 cjk 来忽略这些错误标注。)
6. 其他选项
禁止创建备份文件:启用此选项后,vim 将在覆盖文件前创建一个备份,文件成功写入后保留该备份。如果不想保留该备份文件,可以按下面的方式关闭:
set nobackup
禁止创建交换文件:启用此选项后,vim 将在编辑该文件时创建一个交换文件。 交换文件用于在崩溃或发生使用冲突时恢复文件。交换文件是以 . 开头并以 .swp 结尾的隐藏文件。
set noswapfile
如果需要在同一个 vim 窗口中编辑多个文件并进行切换。默认情况下,工作目录是打开的第一个文件的目录。而将工作目录自动切换到正在编辑的文件的目录是非常有用的。要自动切换工作目录:
set autochdir
vim 自动维护编辑的历史记录,允许撤消更改。默认情况下,该历史记录仅在文件关闭之前有效。vim 包含一个增强功能,使得即使在文件关闭后也可以维护撤消历史记录,这意味着即使在保存、关闭和重新打开文件后,也可以撤消之前的更改。历史记录文件是使用 .un~ 扩展名保存的隐藏文件。
set undofile
错误信息响铃,只对错误信息起作用:
set errorbells
如果你愿意,还可以设置错误视觉提示:
set visualbell
惊喜
vim 提供长格式和短格式命令,两种格式都可用于设置或取消选项配置。
autoindent 选项的长格式是:
set autoindent
autoindent 选项的短格式是:
set ai
要在不更改选项当前值的情况下查看其当前设置,可以在 vim 的命令行上使用在末尾加上 ? 的命令:
set autoindent?
在大多数选项前加上 no 前缀可以取消或关闭选项:
set noautoindent
可以为单独的文件配置选项,而不必修改全局配置文件。需要的话,请打开文件并输入:,然后键入set命令。这样的话,配置仅对当前的文件编辑会话有效。
使用命令行获取帮助:
:help autoindent
注意:此处列出的命令仅对 linux 上的 vim 7.4 版本和 windows 上的 vim 8.0 版本进行了测试。
这些有用的命令肯定会增强您的vim使用体验。你会推荐哪些其他有用的命令?
选项列表
复制该选项列表粘贴到.vimrc文件中:
indentation & tabs
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set smarttab
display & format
set number
set textwidth=80
set wrapmargin=2
set showmatch
search
set hlsearch
set incsearch
set ignorecase
set smartcase
browse & scroll
set scrolloff=5
set laststatus=2
spell
set spell spelllang=en_us
miscellaneous
set nobackup
set noswapfile
set autochdir
set undofile
set visualbell
set errorbells
在电路设计中该如何选择线性稳压器和开关稳压器
回顾2018:汽车产业史上最动荡一年
薄膜表面瑕疵在线检测仪的优点是什么
A/D转换实验
主板上的各种插针详解
Vim中默认未启用但实际非常有用的选项
三相电动机编程控制工作原理及方案
选用弱电线缆阻燃等级时需考虑哪些方面
功率表如何校准_功率分析仪校准规范
学习HTML和CSS的5大理由
推动5G普及应用 紫光展锐与海信通信签署战略合作协议
如何在网上生成以太坊钱包
西井科技推全球首款智能换电无人驾驶商用车Q-Truck
石墨烯涂层技术再获突破,用于飞机发动机叶片隔热保护
四川联想电脑维修网点及联系电话
生物识别技术为我国鉴别技术带来了重大意义
E开箱:三星 Galaxy S23 系列,我最终选择了S23+
全新升级的健身房智能镜子,它的全新功能有哪些
N32L40XCL-STB开发板模块评测:ADC实践之虚拟示波器实现
2020年中国的5G连接数全球领先,占比全球5G连接数超过85%