当前位置: 首页 > 科技观察

增强Vim编辑器,提高编辑效率

时间:2023-03-13 23:48:30 科技观察

这20多个有用的命令可以增强您使用Vim的体验。编者注:标题和文章最初提到的vi编辑器已更新为编辑器的正确名称:Vim。Vim作为功能强大且选项丰富的编辑器而受到许多用户的喜爱。本文介绍了一些在Vim中默认情况下未启用但实际上非常有用的选项。虽然它们可以在每个Vim会话中单独启用,但为了创建一个开箱即用的高效编辑环境,建议在Vim的配置文件中配置这些命令。开始之前这里提到的选项或配置位于用户主目录下的Vim启动配置文件.vimrc中。按照下面的说明在.vimrc中设置选项:(注意:vimrc文件在Linux中也用于全局配置,例如/etc/vimrc或/etc/vim/vimrc。本文中提到的.vimrc是指.vimrc文件。vimrc文件在.vimrc目录中。)在Linux上:用Vim打开.vimrc文件:vim~/.vimrc复制本文中的选项列表***并粘贴到.vimrc文件中保存并关闭(:wq)(LCTT译注:这里不推荐使用Vim编辑.vimrc文件,因为很可能无法粘贴成功,可以选择gedit编辑器编辑.vimrc文件。)Windows系统:首先,安装gvim打开gvim点击“编辑”->“启动设置”打开_vimrc文件将本文***的“选项列表”复制粘贴到_vimrc文件中点击“文件”->“保存”否则可能会出现问题到不同的行尾。)下面,我们将深入研究提高Vim编辑效率的选项。主要分为以下几类:Indent&TabDisplay&FormatSearchBrowse&ScrollSpell其他选项1.Indent&Tab使Vim在新建一行时使用与上一行相同的缩进:setAutoindentusessmartindentationwhencreatingnewline,主要用在C语言等程序中。通常,在开启smartindent的同时也应该开启autoindent:setsmartindent注意:Vim是语言感知的,它的默认设置可以根据文件中的编程语言进行更改,以提高效率。默认的配置选项有很多,包括axscindent、cinoptions、indentexpr等,这里不再赘述。syn是一个非常有用的命令,用于设置文件的语法以更改显示模式。(LCTT译注:这里的syn是指语法,可以用来设置文件使用的编程语言,开启相应的语法高亮,执行自动事件(autocmd)。)设置制表符(TAB)的宽度在文件(带空格数):设置tabstop=4设置移位操作的缩进长度(以空格数为单位)>>或<<:如果您在编辑文件时更喜欢使用空格而不是制表符,请设置shiftwidth=4,设置以下选项,使Vim在您按Tab键时用空格替换制表符。setexpandtab注意:这可能会导致Python等依赖制表符的编程语言出现问题。这时,你可以根据文件类型设置这个选项(请参考autocmd)。2.Display&Format每行前显示行号:setnumber当文本行超过一定长度时自动换行:settextwidth=80根据从开始算起的列数自动换行窗口左侧右侧:setwrapmargin=2(LCTT译注:如果textwidth选项不等于0,则该选项无效。)当遍历文件时光标经过括号时,高亮匹配的括号:setshowmatch3.搜索高亮搜索内容的所有匹配位置:sethlsearch搜索时动态显示匹配的内容:setincsearch搜索时忽略大小写:setignorecase开启ignorecase选项后,当搜索内容包含部分大写字符时,使searchcase-sensitive:setsmartcase例如如果文件内容为:testTest当ignorecase和smartcase选项开启时,搜索test时高亮:testTestsearchHighlightingduringTest:testTest4。浏览和滚动为了获得更好的视觉体验,您可能希望将光标放在窗口的中间而不是第一行。以下选项将光标保持在窗口上方和下方5行。设置scrolloff=5的例子:第一张图scrolloff=0,第二张图scrolloff=5。提示:如果您没有设置nowrap选项,设置sidescrolloff将很有用。在Vim窗口底部显示一个***状态栏,可以显示文件名、行号和列号等:setlaststatus=25。拼写Vim有一个内置的拼写检查器,这对文本编辑和编码非常有用。Vim识别文件类型并且只对代码中的注释进行拼写检查。使用以下选项打开英文拼写检查:setspellspelllang=en_us将cjk添加到选项中以忽略这些错误标记。)6.其他选项禁用创建备份文件:启用此选项时,Vim将在覆盖前创建备份文件,并在文件写入成功后保留备份。如果不想保留备份文件,可以按如下方式将其关闭:setnobackup禁止创建交换文件:启用该选项后,Vim将在编辑该文件时创建一个交换文件。交换文件用于在崩溃或使用冲突的情况下恢复文件。交换文件是以.开头的隐藏文件。并以.swp结尾。如果需要在同一个Vim窗口中编辑多个文件并切换,请设置noswapfile。默认情况下,工作目录是第一个打开文件的目录。而且自动将工作目录切换到正在编辑的文件所在的目录非常有用。自动切换工作目录:setautochdirVim自动维护编辑历史,允许撤销更改。默认情况下,此历史记录仅在文件关闭之前有效。Vim包括一个增强功能,即使在文件关闭后也可以保留撤消历史记录,这意味着即使在保存、关闭和重新打开文件后,以前的更改也可以撤消。历史文件是以.un~扩展名保存的隐藏文件。setundofileerrormessagebell,只针对错误信息:seterrorbells如果你愿意,你也可以设置错误视觉提示:setvisualbellSurpriseVim提供了长格式和短格式的命令,这两种格式都可以用来设置或取消选项配置。autoindent选项的完整形式是:setautoindentautoindent选项的简短形式是:setai要查看选项的当前设置而不更改其当前值,请使用带有?的命令。在Vim命令行的末尾:setautoindent?Prefixmostoptionswithno取消或关闭选项:setnoautoindent可以为单个文件配置选项而不用修改全局配置文件。如有必要,打开文件并键入:后跟set命令。在这种情况下,配置仅对当前文件编辑会话有效。使用命令行获取帮助::helpautoindent注意:此处列出的命令仅在Linux上的Vim7.4版和Windows上的Vim8.0版上进行了测试。这些有用的命令肯定会增强您的Vim体验。您会推荐哪些其他有用的命令?选项列表复制该选项列表并粘贴到您的.vimrc文件中:"Indentation&Tabssetautoindentsetsmartindentsettabstop=4setshiftwidth=4setexpandtabsetsmarttab"Display&formatsetnumbersettextwidth=80setwrapmargin=2setshowmatch"Searchsethlsearchsetincsearchsetignorecasesetsmartcase"Browse&Scrollsetscrolloff=5setlaststatus=2"Spellsetspellspelllang=en_us"Miscellaneoussetnobackupsetnoswapfilesetautochdirsetundofilesetvisualbellseterrorbells