Linux vi vim 命令 - 功能强大的终端文本编辑器
vim 命令(英文全称为 Vi IMproved)是 Linux / Unix 系统中功能强大的纯命令行文本编辑器,它完全兼容 vi 命令的所有命令,并且在 vi 的基础上,新增多级撤销、语法高亮、多窗口、可视化选择等实用功能,可以编辑各类纯文本文件,尤其非常的适合编辑程序代码、系统配置文件等。
[!TIP]
在 Linux 系统中一般默认安装了
vim命令,且vi命令是对vim命令的链接。
vi 命令命名的由来:
ed命令的名称由Editor 中的前两个字符而来。ex命令是ed的功能扩展版,即Extended 的前两个字符vi命令是ex命令的可视化编辑模式,即 visual 的前两个字符
vim 命令功能说明
vim 命令的特有功能是「多模式编辑机制」,这是其区别于 nano、emacs 等文本编辑器的本质所在,相对于 vi,新增了很多的功能,具体如下:
1)多模式编辑:vim 命令包含三种模式,可以在不同的模式之间进行切换:
- 命令模式:默认启动的模式,主要的功能是用于执行光标移动、复制、删除等操作
- 插入模式:用于输入文本,按
i或a键进入,Esc键退出并进入命令模式 - 底行模式:用于执行保存、退出、查找、替换等命令
2)增强功能一些功能:
- 增多级撤销:可撤销多次操作
- 语法高亮功能:自动识别代码、配置文件语法,用不同颜色标注代码中不同的内容
- 多窗口与缓冲区:可同时编辑多个文件,切换便捷
- 可视化选择:可通过鼠标或快捷键选择文本块,方便复制、删除
3)提供了多种运行模式:可以运行 ex view gvim 等模式
多模式详解
vim 命令包含三种模式:
- 命令模式:默认启动的模式,主要的功能是用于执行光标移动、复制、删除等操作
- 插入模式:用于输入文本,
- 底行模式:用于执行保存、退出、查找、替换等命令
注意在命令模式和插入模式下都能删除内容,但是有所不同:
- 命令模式下:需要使用特定的命令
- 输入模式下:使用
Backspace或Delete键
切换模式
用户可以在不同的模式之间进行切换:
- 在
命令模式按i、a、o、O命令进入输入模式 - 在
输入模式按Esc返回命令模式 - 在
命令模式按:进入底行模式 - 在
底行模式删除:进入命令模式
相似命令对比
与 vim 功能相似的命令主要有 nano、emacs,三个命令的功能简要介绍如下:
vim: 纯命令行文本编辑,支持多模式、多窗口、语法高亮,支持多种编辑模式,功能丰富,但是学习起来有一定的难度nano: 纯命令行文本编辑,在编辑界面的下方有命令提示,使用简单emacs: 文本编辑器,支持图形界面和命令行,可以安装扩展插件,学习起来也有一定的难度
vim 命令语法结构
vim 命令的语法简洁,支持多种选项组合在一起使用,同时也提供了多种命令方式,同时可以启动多个文件,具体语法形式如下:
1)通用的语法形式:
vim [options] [file ..]
vim [options] -
vim [options] -t tag
vim [options] -q [errorfile]
语法各部分的详细说明:
[options]: 可选的内容,用于指定编辑模式、光标位置、文件格式等,选项可单独使用,也可组合在一起使用[file ..]: 可选的内容,指定需要编辑的一个或多个文件名,如果不指定文件名,编辑器后会打开一个空缓冲区,需要手动新建或打开文件;如果指定了多个文件名,可通过:next命令切换文件;如果文件名以-开头,为了避免被解析为选项需要在前面加上---: 指定从标准输入(stdin)读取要编辑的文件-ttag: 使用标签tag定位文件和光标位置-q[errorfile]: 启动快速修复模式,读取错误文件 errorfile,并显示第一个错误
2)其他命令启动方式
ex // 启动 Ex 模式
view // 启动只读模式
gvim gview evim eview // 启动 GUI 模式
rvim rview rgvim rgview // 启动简易模式
以上的命令也可以使用 vim 命令启动:
ex: 等价于vim -e,启动 Ex 模式view: 等价于vim -R,启动只读模式gvim: 等价于vim -g,启动 GUI 模式evim: 等价于vim -y,启动简易模式rvim: 等价于vim -Z,启动限制模式
软件包解释说明
vim-tiny: 最小化的 Vim 安装包,功能精简,但是提供的命令的名称可能为vi。vim: 完整的 Vim 软件包,功能比 vim-tiny 丰富,在系统中需要单独安装,安装后的使用命令是vim,但是不支持图形界面。vim-nox: 功能完整的 Vim,支持 Lua, Perl, Python, Ruby 等脚本语言vim-gtk3: 使用 GTK3 库开发的图形界面的 vim,即 gvim。vim-motif: 使用 Motif 库开发的图形界面的 vim,即 gvim,如果要使用图形界面,推荐使用vim-gtk3
[!NOTE]
在 Linux 系统中一般默认安装的是
vim-tiny,默认使用的命令是vi,要想要使用vim或gvim命令需要额外安装对应的软件包,不同的发行版中的软件包的名称可能略有不同。
命令详解
如下讲解的命令只能在命令模式下使用,就是在命令模式下输入这些字符。
移动光标
如下分类给出相关的移动光标命令。
基本移动
基础移动光标命令是最常用的移动光标命令:
h:向左移动一个字符j:向下移动一个字符(也就是向下移动一行)k:向上移动一个字符(也就是向上移动一行)l:向右移动一个字符0:移动到行首$:移动到行尾^:移动到行首的第一个非空白字符处0:移动到行首
注:同时可以使用方向键移动光标
按单词移动
如下的命令以单词为单位,移动光标:
w, W:向前移动一个单词,文本中的前是指 "行尾的方向,或者下"b, B:向后移动一个单词,文本中的前是指 "行首的方向,或者上"e, E:移动到单词末尾
屏幕内移动
如下的命令在屏幕范围内,移动光标,不会滚动屏幕:
H:移动到屏幕顶部,也就是当前显示区域内的第一行M:移动到屏幕中间L:移动到屏幕底部,也就是当前显示区域内的最后一行
文件内移动
如下的命令文件的范围内,快速的把光标移动到特定的位置:
G:移动到文件最后一行的行首行号G:移动到指定行号的行首:行号:跳转到第行号行
文本操作
删除文本
使用如下命令在命令模式下删除文本:
x:删除当前光标处的字符。X:删除当前光标的前一个字符。dd:删除整行。dw:删除当前光标处的单词。d$:删除到行尾d0:删除到行首:行号d:删除指定行号行的内容,如5d删除第5行的内容:行号,行号2d:删除指定行号1到行号2范围内所有行的内容,如:5,10d删除第5到第10行的内容:.,$d:从当前行(.)删除到文件末尾($)
如下的命令使用搜索功能,删除文本:
:g/pattern/d:删除所有匹配到的内容所在的整行:v/pattern/d:删除所有没有匹配到搜索内容的整行
复制和粘贴
yy:复制当前行yw:复制当前的单词y$:复制到行尾。p:将复制或删除的内容粘贴到光标后方。P(大写形式):将复制或删除的内容粘贴到光标后方。
修改命令
如下的修改命令也会进入输入模式,需要按 Esc 返回命令模式:
cc:修改整行,即:删除整行的内容后,进入编辑模式,在改行插入内容,可换行继续插入内容cw:从光标处修改单词,不会直接删除单词的内容,而是覆盖原来的字符,但是到结尾后可以继续插入字符,也可换行c$:从光标处修改该行后面的内容,不会直接删除内容,而是覆盖原来的字符,但是到结尾后可以继续插入字符,也可换行R:从光标处在该行内替换内容,与c$非常的相似
如下的修改命令也会进入输入模式,但会自动返回命令模式:
r:替换当前光标处的单个字符,替换完成后,自动返回命令模式
撤销和重做
u:撤销上一次操作U(大写形式):恢复当前行的原始状态,即:撤销对本行的所有操作.:重复上一次操作
保存和退出
:w:保存文件:wq:保存并退出:x:保存并退出(仅当有修改时):q:退出:q!:强制退出,编辑后,不需保存内容时使用
搜索和替换
在搜索和替换内容时支持使用基本的正则表达式。
正则表达式
在 vi 中可以使用的正则表达式字符有:
^:匹配行首$:匹配行尾.:匹配任意单个字符*:对前面的内容进行 0 次或多次匹配[]:匹配中括号内的任意一个字符即可,如[abc]表示匹配 a 或 b 或 c\<:匹配单词的开头\>:匹配单词的结尾\(...\):把括号内的匹配到的内容作为一个分组\序号:引号(获取)指定需要的分组匹配到的内容,如\2引用第二个分组匹配到的内容
搜索
/text或:/text:向前(文本中的行尾方向或向下)搜索指定的文本内容,text替换为你需要搜索的具体的值,会定位到第一次匹配到的内容?text或:?text:向后(文本中的行首方向或向上)搜索指定的文本内容,text替换为你需要搜索的具体的值,会定位到第一次匹配到的内容n:重复上一次搜索(按上一次搜索的方向进行),每次只匹配一次N:重复上一次搜索(按上一次搜索的反方向进行),每次只匹配一次
替换
使用如下命令替换内容:
:s/old/new/:将当前行的第一个old替换为new:s/old/new/g:将当前行的所有old替换为new:1,10s/old/new/g:在第1到10行内将所有old替换为new:%s/old/new/g:在整个文件内将所有old替换为new:%s/old/new/gc:在整个文件内将所有old替换为new,并在每次替换前确认(c)
配置选项
vi 的配置可以在配置文件中配置;还可以在编辑文件时,使用 :set 选项 的方式临时设置。
永久设置
vi 的配置可以在配置文件中配置,每次启动 vi 时,都会加载该配置,方便使用。
在配置文件 ~/.nexrc 或 ~/.exrc 添加的常用的配置:
" 显示设置
set number " 显示行号
set verbose " 显示详细的错误信息
set showmode " 显示当前模式
" 缩进设置
set autoindent " 设置自动缩进
set shiftwidth=4 " 设置缩进为4个空格
set tabstop=4 " 设置制表符显示宽度为4个字符"
set expandtab " 将Tab键输入转换为空格
" 搜索设置
set ignorecase " 搜索时忽略大小写
临时设置
使用 :set 选项 的方式临时设置,该设置只对当前的会话有效,关闭文件后,下一次打开文件需要重新设置。
常用的设置选项有:
" 显示设置
:set number " 显示行号
:set verbose " 显示详细的错误信息
:set showmode " 显示当前模式
" 缩进设置
:set autoindent " 设置自动缩进
:set shiftwidth=4 " 设置缩进为4个空格
:set tabstop=4 " 设置制表符显示宽度为4个字符"
:set expandtab " 将Tab键输入转换为空格
" 搜索设置
:set ignorecase " 搜索时忽略大小写
查看设置
在编辑文件时可以使用如下的命令查看配置选项:
:set:显示所有已更改的选项
:set all:显示所有选项
:set option?:显示特定选项的值
环境变量
vi 的配置受以下环境变量的影响:
COLUMNS:屏幕列数LINES:屏幕行数TERM:终端类型EXINIT:ex初始化命令HOME:用户主目录SHELL:使用的shell
vim 命令示例
如下示例给出如何使用 vim 或 vi 命令,但是最重要的还是要掌握上面给出的操作命令。
[!NOTE]
在 Linux 系统中安装 vim 后,可能使用的命令有时会有所不同,如果没有
vim命令,请运行vi命令。
默认启动编辑器
不适用任何选项,也不指定任何文件运行命令:
vi
在启动 vim 编辑器后,默认进入命令模式,会打开一个空缓冲区,可以输入内容,但是保存时需要 :w 文件名 来保存文件。
编辑指定文件(基础编辑场景)
指定文件的名称来编辑指定的文件:
vim test.txt
# 或者
vi test.txt
如果文件不存在,保存后会创建该文件。
以只读模式打开文件
使用 -R 选项以只读模式打开文件:
vim -R test.txt
# 或者
view test.txt
指定光标位置启动
使用 +[num] 指定启动后光标定位的行数:
vim +10 test.txt
该示例打开文件后,把光标定位到第 10 行。
启动时执行指定命令
使用 -c 选项复制命令字符串,在启动时执行相应的命令:
vim -c "set number" test.txt
# 或者
vim "+set number" test.txt
该示例在启动时执行 set number 命令,即显示行号。
标签跳转定位
使用 -t 选项赋值字符串,进入文件后定位到指定的字符串:
vim -t main
该示例会把光标定位到 main 字符串的位置。
恢复崩溃的编辑会话
使用 -r 选项,恢复上一次崩溃的编辑内容:
vim -r test.txt
[!NOTE]
vim 会生成一个
.test.txt.swp临时文件爱你,使用-r选项会读取该文件,恢复内容。
使用 diff 模式对比文件
使用 -d 选项指定两个文件,可以对比两个文件的差异:
vim -d test1.txt test2.txt
1)可以使用的操作命令(输入相应的按键):
- 定位下一处差异:
]c - 定位上一处差异:
[c - 把当前差异推送到另一个文件:
dp(diff put) - 把另一个文件的差异拉到当前文件:
do(diff obtain) - 手动刷新差异高亮:
:diffupdate
2)分屏操作可以使用的命令:
- 来回切换光标所在的窗口:
Ctrl + w 再按 w - 左右分屏时跳到右边文件:
Ctrl + w 再按 l - 左右分屏时跳到左边文件:
Ctrl + w 再按 h - 上下分屏时跳到下边文件:
Ctrl + w 再按 j - 上下分屏时跳到上边文件:
Ctrl + w 再按 k
[!TIP]
等同于使用 vimdiff test1.txt test2.txt 命令
vim 命令选项详解
vim 命令有很多的选项,而且有些可能适用于不同的 vim 版本或者不同的系统,如下给出 vim 命令所有选项的详细解释说明:
| 选项 | 值的类型 | 适用范围 | 功能说明 |
|---|---|---|---|
+[num] | 整数 | vim / vi | 启动后,把光标定位在第 num 行;当省略 num 时把光标定位在最后一行,该选项只对第一个打开的文件有效 |
+/{pat} | 字符串 | vim / vi | 启动后,会把光标定位在第一次匹配到的 pat 搜索模式的行,pat可以是正则表达式,可以使用:help search-pattern` 查看帮助信息 |
+{command} | Ex 命令字符串 | vim / vi | 启动后,执行指定的 Ex 命令,如 +set number、+"w! test.txt",最多可使用10个命令,当命令内包含空格时需要使用双引号包裹起来,与使用 -c 选项的功能相同 |
-c {command} | Ex 命令字符串 | vim / vi | 启动后,执行指定的 Ex 命令,如 +set number、+"w! test.txt",与 +{command} 选项的功能相同 |
-A | - | vim | 如果 vim 编译时支持从右到左的阿拉伯语和阿拉伯语的键盘映射,则会启动阿拉伯语模式;否则会报错并退出 |
-b | - | vim | 启用二进制模式,支持编辑二进制可执行文件 |
-C | - | vim | 设置 compatible 选项,即使存在 .vimrc 文件也启用兼容模式,使 vim 行为与 vi 接近 |
-d | - | vim | 启用 diff模式,可以对比2-8个文件的差异,等价于使用 vimdiff 命令,对比时会自动高亮显示差异内容,支持使用快捷键进行跳转 |
-d {device} | 路径字符串 | Amiga系统的 vim | 打开指定设备作为终端,只有在 Amiga 系统上才能使用 |
-D | - | vim | 启用调试模式,当执行脚本中的第一个命令时进入调试模式 |
-e | - | vim / vi | 启动 Ex 命令模式,等价于执行 ex 命令;在该模式下可以使用 :vi 命令切换到正常的模式 |
-E | - | vim | 启动增强 Ex 模式,相当于调用了 exim 命令 |
-f | - | vim | 启动前台模式,如果使用的是 GUI 版本则不脱离启动的shell;如果是在 Amiga 系统中运行则不重启新窗口,主要用于程序调用 vim,等待编辑完成后继续执行程序 |
-F | - | vim | 如果 vim 编译时支持 FKMAP,启动波斯语模式,如设置 fkmap 和 rightleft 等选项;否则会报错并退出,波斯语支持已在补丁8.1.0932中被移除,该选项基本上已经废弃 |
-g | - | vim | 启用 GUI 图形界面模式,如果当前的 vim 不支持 GUI,会报错并退出 |
-H | - | vim | 如果安装的 vim 支持 RIGHTLEFT,启动从右到左的希伯来语模式,如设置 hkmap 和 rightleft 等选项,否则会报错并退出 |
-i {viminfo} | 文件路径字符串或 NONE | vim | 读取或写入 viminfo 指定的文件,而不是使用默认的 ~/.viminfo 文件,如果指定的值为 NONE,则不使用 viminfo 文件,不保存编辑历史等信息 |
-l | - | vim | 启用 Lisp 模式,设置 lisp 和 showmatch 选项,用于编辑 Lisp 语言代码,自动适配 Lisp 的语法的缩进和匹配 |
-L | - | vim | 与 -r 选项的功能相同,用于恢复崩溃的编辑会话 |
-m | - | vim | 禁用文件修改功能 |
-M | - | vim | 禁止所有修改,会取消 modifiable 和 write 选项 |
-n | - | vim / vi | 不使用交换文件,崩溃后无法恢复编辑内容 |
-N | - | vim | 禁用兼容模式,重置 compatible 选项 |
-nb | - | vim | 使它成为 NetBeans 的编辑器服务器,用于关联 NetBeans IDE 编辑的文件 |
-o[N] | 整数 | vim | 打开 N 个堆叠窗口,每个窗口编辑一个文件;省略 N 时则为每个文件打开一个窗口,可使用 Ctrl+W 快捷键切换窗口,提升多文件编辑效率 |
-O[N] | 整数 | vim | 打开 N 个并排窗口,每个窗口编辑一个文件;省略 N 时,为每个文件打开一个窗口 |
-p[N] | 整数 | vim | 打开 N 个标签页,每个标签页编辑一个文件;省略 N 时为每个文件打开一个标签页,可使用 :tabnext、:tabprev 命令切换标签页 |
-P {parent-title} | 字符串 | Win32 GUI 的 vim | 指定父应用的标题,使 vim 在父应用的 MDI 窗口中运行,实现不完善,只适用于部分 Win32 GUI 应用 |
-r | - | vim / vi | 列出所有的可恢复的交换文件,显示恢复相关的信息 |
-r {file} | 文件路径字符串 | vim / vi | 使用对应的交换文件 .swp,恢复指定文件的编辑会话,如 -r test.txt |
-R | - | vim / vi | 启用只读模式,设置 readonly 选项,不能保存文件 |
-s | - | vim | 启用静默模式,不输出多余提示信息,当以 Ex 模式启动或 -e 在 -s 选项之前时,才能启动静默模式 |
-s {scriptin} | 脚本文件路径字符串 | vim | 读取脚本文件,将文件中的字符视为手动输入的命令,如 -s edit.script |
-S {file} | 脚本文件路径字符串 | vim | 读取第一个文件后,执行指定的脚本文件;省略 file 时,执行 Session.vim 脚本文件,与使用 -c "source {file}" 选项的功能相同,只有当 -S 为最后一个选项时,才能省略 file 值 |
-T {terminal} | 终端名称字符串 | vim / vi | 指定终端类型,如 -T xterm,指定的终端名称需要时 vim 支持的类型,可以是内置的支持的类型或定义在 termcap/terminfo 文件中的类型 |
-u {vimrc} | 配置文件路径字符串或 NONE | vim | 使用指定的 vimrc 文件初始化 vim,如果指定为 NONE,跳过所有的初始化,启动纯净版的 vim,如 -u ~/.myvimrc |
-U {gvimrc} | GUI 配置文件路径字符串 | vim | 使用指定的 gvimrc 文件初始化 GUI,如果指定为 NONE,跳过所有的 GUI 界面的初始化 |
-v | - | vim | 启动 vi 模式,相当于执行 vi 命令,只有 运行 "ex" 时 才有用 |
-V[N] | 整数 | vim | 启用详细输出模式,输出初始化、文件读取等相关信息;N 为详细级别,默认10 |
-V[N]{filename} | filename 为日志文件字符串 | vim | 启用详细输出模式,并将详细的输出信息输出到指定日志文件中;N 为详细级别 |
-w{number} | 整数 | vim | 把 window 选项设置为指定的数值,用来控制窗口大小 |
-w {scriptout} | 脚本文件路径字符串 | vim | 把输入的所有字符记录到脚本文件中,直到退出vim |
-W {scriptout} | 脚本文件路径字符串 | vim | 与 -w 选项功能相同,但会覆盖已存在的脚本文件 |
-x | - | vim | 如果安装的 vim 支持加密功能,保存文件时启用加密功能,提示输入加密密钥 |
-X | - | vim | 启动时,不连接 X 服务器,能够缩短终端启动时间,但是无法使用窗口标题和剪贴板功能, |
-y | - | vim | 启动简易模式,相当于执行 evim 或 eview 命令 |
-Z | - | vim | 启用限制模式,禁止启动 shell 命令,相当于执行 rvim 或 rview 命令 |
-- | - | vim / vi | 标记选项结束,后续参数均视为文件名,当要编辑以 -`` 开头的文件时需要使用 |
--clean | - | vim | 不使用任何的个人配置,启动纯净版的 vim |
--cmd {command} | Ex 命令字符串 | vim | 在执行 vimrc 文件前,先执行指定 Ex 命令,最多可使用10个cmd 命令,与 -c 选项的区别是执行的时机不同 |
--echo-wid | - | GTK GUI 版本的 vim | 在标准输出中显示窗口 ID,只适用于 GTK GUI 版本vim |
--gui-dialog-file {name} | 日志文件路径字符串 | GUI 版本的 vim | 在 GUI 模式下,将对话框的标题和消息写入指定的日志文件中,不使用对话框显示信息 |
-h, -?, --help | - | vim / vi | 显示简短的帮助信息并退出 |
--literal | - | vim | 把文件名中的所有的字符作为普通字符,而不是把某些字符作为通配符 |
--log {filename} | 日志文件路径字符串 | vim | 如果安装的 vim 支持 eval 和 channel 功能,启动日志功能并写 |
--nofork | - | GUI 版本的 vim | 启用前台模式,不脱离启动的 shell 来运行,与 -f 选项的功能相同 |
--noplugin | - | vim | 不加载任何的插件,当使用 -u NONE 选项时,会默认启用该色设置 |
--not-a-term | - | vim | 告知 vim 用户知道输入/输出未连接到终端,可以避免警告和 2 秒的延迟 |
--remote | - | vim | 连接到 vim 服务器,在服务器上编辑后续指定的文件,如果未找到服务器,会提示用户并在当前的 vim 中编辑文件 |
--remote-expr {expr} | 表达式字符串 | vim | 连接到 vim 服务器,在服务器中执行表达式并输出结果,如 --remote-expr "expand('%')" |
--remote-send {keys} | 按键指令字符串 | vim | 连接到 vim 服务器,向服务器发送指定的按键指令,如 --remote-send ":wq\<CR>" |
--remote-silent | - | vim | 与 --remote 选项的功能相同,但在未找到服务器时不会提示任何的信息 |
--remote-wait | - | vim | 与 --remote 选项的功能相同,但是直到文件编辑完成再退出 vim |
--remote-wait-silent | - | vim | 与 --remote-wait 选项的功能相同,但在未找到服务器时不会提示任何的信息 |
--serverlist | - | vim | 列出所有可以找到的 vim 服务器的名称 |
--servername {name} | 服务器名称字符串 | vim | 指定 vim 服务器的名称,如果与 --remote 配合在一起使用,则连接到指定名称的服务器 |
--socketid {id} | 整数 | GTK GUI 版本的 vim | 使用 GtkPlug 机制,让 gvim 在另一个窗口中运行,只适用于 GTK GUI 版本 vim,如 --socketid 12345 |
--startuptime {file} | 日志文件路径字符串 | vim | 启动过程中,将计时信息写入到指定的日志文件 |
--ttyfail | - | vim | 如果标准输入或标准输出不是 tty 终端,则立即退出 |
--version | - | vim / vi | 输出版本信息并退出 |
--windowid {id} | 整数 | Win32 GUI 版本的 vim | 让 gvim 尝试使用指定的窗口 ID 作为父窗口,并在该窗口内运行,只适用于 Win32 GUI 版本的 vim,当前的实现还不完善 |
相关配置文件解释说明
vim 命令的运行的时候会依赖很多的系统配置文件、语法文件、文档文件等,以下会给出相关文件的说明:
| 文件路径 | 功能说明 |
|---|---|
/usr/local/share/vim/vim??/doc/\*.txt | vim 的官方文档文件,包含所有命令、选项、功能的详细说明,vim?? 是 vim 的版本号数字的连写 |
/usr/local/share/vim/vim??/doc/tags | 文档标签文件,可以在 vim 的帮助文档中实现快速跳转定位 |
/usr/local/share/vim/vim??/syntax/syntax.vim | 系统级语法初始化文件,用于开启和配置 vim 的语法高亮功能 |
/usr/local/share/vim/vim??/syntax/\*.vim | 各类语言的语法文件,用于识别不同编程语言的语法并高亮显示,每个文件对应一种语言,如 python.vim |
/usr/local/share/vim/vimrc | 系统级 vim 的初始化配置文件 |
~/.vimrc | 当前用户的 vim 初始化配置文件 |
~/.viminfo | 当前用户的 vim 历史记录文件 |
~/.vim/ | 当前用户的 vim 插件和自定义配置目录 |
/usr/local/share/vim/vim??/colors/ | 系统级的 vim 的配色方案目录 |
/usr/local/share/vim/vim??/plugin/ | 系统级的 vim 的插件目录 |
/tmp/.swp | vim 的临时交换文件 |
/usr/bin/vim | vim 的可执行文件的路径,多数 Linux 发行版中,vi 命令是对该文件的软链接 |
结语
vim 命令作为类 Unix 系统中一款功能非常强大的纯命令行文本编辑器,它是 vi 命令的功能增强版本,完全的兼容 vi 命令,同时还新增多级撤销、语法高亮、多窗口、标签页等功能,是在程序开发或系统维护中经常使用到的工具,推荐掌握其基本的使用方法,在你看完本文的内容后就基本掌握了其用法。
本文全面的覆盖了 vim 命令的知识点,给出了其语法结构说明、多模式和操作命令详解、使用示例,最后又给出 vim 命令的全部选项的解释说明,内容非常的全面详细,可以使用本教程一步一步的学习。