小知识:Linux使用VIM编辑器的方法

vim 作为一款功能强大、选项丰富的编辑器,为许多用户所热爱。本文介绍了一些在 vim 中默认未启用但实际非常有用的选项。虽然可以在每个 vim 会话中单独启用,但为了创建一个开箱即用的高效编辑环境,还是建议在 vim 的配置文件中配置这些命令。

技巧:快速提高 vim 使用效率的原则与途径

vim 是所有 unix/linux 操作系统默认配备的编辑器。因其强大的功能和高效的操作,vim 也成为众多 unix/linux 用户、管理员必须掌握并熟练使用的编辑工具之一。尤其是在没有图形界面的情况下,更是离不开 vim。vim 命令非常多、用法极为灵活,掌握起来有一定的难度。本文作者将结合自己的使用经验,分七个方面着重介绍哪些原则、途径或命令能快速提高 vim 文件编辑效率,从而达到事半功倍的效果。

引言 

vi 最初是由 bill joy 在 1976 年编码实现的。而 vim (vi improved) 则是改进的 vi,由 bram moolenaar 在 1991 年开发并发布。vim 是所有 unix/linux 操作系统默认配备的编辑器。因其强大的功能和高效的操作,vim 也成为众多 unix/linux 用户、管理员必须掌握并熟练使用的编辑工具之一。尤其是在没有图形界面的情况下,更是离不开 vim。vim 命令非常多、用法极为灵活,掌握起来有一定的难度。详细介绍 vim 使用方法的文章有很多,因而本文就不一一述及 vim 的诸多功能及命令。本文作者将结合自己的使用经验,分七个方面着重介绍哪些原则、途径或命令能快速提高 vim 文件编辑效率,从而达到事半功倍的效果。本文述及的途径或命令均只针对系统默认配置的 vim。关于 vim 各种定制后的功能不在本文讨论范围之列。(注:本文中提到的所有命令均在 red hat enterprise linux server release 6.1 上测试通过。)

vim 版本的选择 

“工欲善其事,必先利其器”。在 vim 版本的选择上,原则是“能用 vim 就不要使用 vi;能用最新版就不要守着旧版本”。vim 提供的功能和特性要比 vi 多得多,如语法加亮着色功能等。就使用效果及效率来说,编辑同样的文件,使用 vim 更胜一筹;就版本来说,新版的往往会修复旧版的一些缺陷及不足。这就要求我们在可能的情况下一定要使用最新版的 vim。

小技巧:

在 linux 下,如果以 root 用户登录系统的话,通过 vi 命令打开的 vim 编辑器往往只加载最基本的功能,像语法加亮着色的功能基本上没有。在 root 用户下使用 vim 所有功能的技巧是用 vim 命令打开 vim 编辑器。

开始前的准备

这里所说的选项或配置均位于用户主目录中的 vim 启动配置文件 .vimrc。 按照下面的说明在 .vimrc 中设置选项:

(注意:vimrc 文件也用于 linux 中的全局配置,如 /etc/vimrc 或 /etc/vim/vimrc。本文所说的 .vimrc 均是指位于用户主目录中的 .vimrc 文件。)

linux 系统中:

用 vim 打开 .vimrc 文件: vim ~/.vimrc 复制本文最后的 选项列表 粘贴到 .vimrc 文件 保存并关闭 (:wq)

(此处不建议使用 vim 编辑 .vimrc 文件,因为很可能无法粘贴成功,可以选择 gedit 编辑器编辑 .vimrc 文件。)

windows 系统中:

首先, 安装 gvim 打开 gvim 单击 “编辑” -> “启动设置”,打开 _vimrc 文件 复制本文最后的 “选项列表” 粘贴到 _vimrc 文件 单击 “文件” -> “保存”

(此处应注意不要使用 windows 自带的记事本编辑该 _vimrc 文件,否则可能会因为行结束符不同而导致问题。)

下面,我们将深入研究提高 vim 编辑效率的选项。主要分为以下几类:

缩进 & 制表符 显示 & 格式化 搜索 浏览 & 滚动 拼写 其他选项

1. 缩进 & 制表符

使 vim 在创建新行的时候使用与上一行同样的缩进:

set autoindent

创建新行时使用智能缩进,主要用于 c 语言一类的程序。通常,打开 smartindent 时也应该打开 autoindent:

set smartindent

注意:vim 具有语言感知功能,且其默认设置可以基于文件中的编程语言来改变配置以提高效率。有许多默认的配置选项,包括 axs cindent,cinoptions,indentexpr 等,没有在这里说明。 syn 是一个非常有用的命令,用于设置文件的语法以更改显示模式。

(这里的 syn 是指 syntax,可用于设置文件所用的编程语言,开启对应的语法高亮,以及执行自动事件 (autocmd)。)

设置文件里的制表符 (tab) 的宽度(以空格的数量表示):

set tabstop=4

设置移位操作 >> 或 << 的缩进长度(以空格的数量表示):

set shiftwidth=4

如果你更喜欢在编辑文件时使用空格而不是制表符,设置以下选项可以使 vim 在你按下 tab 键时用空格代替制表符。

set expandtab

注意:这可能会导致依赖于制表符的 python 等编程语言出现问题。这时,你可以根据文件类型设置该选项(请参考 autocmd)。

2. 显示 & 格式化

要在每行的前面显示行号:

set number

%小知识:Linux使用VIM编辑器的方法-猿站网-插图

要在文本行超过一定长度时自动换行:

set textwidth=80

要根据从窗口右侧向左数的列数来自动换行:

set wrapmargin=2

(如果 textwidth 选项不等于零,本选项无效。)

当光标遍历文件时经过括号时,高亮标识匹配的括号:

set showmatch

%小知识:Linux使用VIM编辑器的方法-1猿站网-插图

3. 搜索

高亮搜索内容的所有匹配位置:

set hlsearch

%小知识:Linux使用VIM编辑器的方法-2猿站网-插图

搜索过程中动态显示匹配内容:

set incsearch

%小知识:Linux使用VIM编辑器的方法-3猿站网-插图

搜索时忽略大小写:

set ignorecase

在打开 ignorecase 选项的条件下,搜索内容包含部分大写字符时,要使搜索大小写敏感:

set smartcase

例如,如果文件内容是:

test

test

当两者都ignorecase和smartcase设置后,搜索“test”,查找并突出显示这两种内容:

对“test”的搜索只突出显示或只找到第二行

4. 浏览 & 滚动

为获得更好的视觉体验,你可能希望将光标放在窗口中间而不是第一行,以下选项使光标距窗口上下保留 5 行。

set scrolloff=5

一个例子:

第一张图中 scrolloff=0,第二张图中 scrolloff=5。

%小知识:Linux使用VIM编辑器的方法-4猿站网-插图

提示:如果你没有设置选项 nowrap,那么设置 sidescrolloff 将非常有用。

在 vim 窗口底部显示一个永久状态栏,可以显示文件名、行号和列号等内容:

set laststatus=2

%小知识:Linux使用VIM编辑器的方法-5猿站网-插图

5. 拼写

vim 有一个内置的拼写检查器,对于文本编辑和编码非常有用。vim 可以识别文件类型并仅对代码中的注释进行拼写检查。使用下面的选项打开英语拼写检查:

set spell spelllang=en_us

(中文、日文或其它东亚语字符通常会在打开拼写检查时被标为拼写错误,因为拼写检查不支持这些语种,可以在 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命令。这样的话,配置仅对当前的文件编辑会话有效。

%小知识:Linux使用VIM编辑器的方法-6猿站网-插图

使用命令行获取帮助:

:help autoindent

%小知识:Linux使用VIM编辑器的方法-7猿站网-插图

注意:此处列出的命令仅对 linux 上的 vim 7.4 版本和 windows 上的 vim 8.0 版本进行了测试。

这些有用的命令肯定会增强您的 vim 使用体验。你会推荐哪些其他有用的命令?

选项列表

复制该选项列表粘贴到 .vimrc 文件中:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
” 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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://opensource.com/article/18/9/vi-editor-productivity-powerhouse

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:解决使用了nginx获取IP地址都是127.0.0.1 的问题

2023-3-22 23:56:18

建站知识

小知识:如何监控docker容器运行状态 shell 脚本

2023-3-22 23:57:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索