我们常说:Linux中一切都是文件。因此使用文本编辑器编辑配置文件参数是一键非常重要的事情,而最为广大用户熟知的文本编辑器非vim莫属;今天我们就来简单了解一下vim文本编辑器的使用。
一、vi与vim
在学习vim的使用之前,我们需要介绍一下vi文本编辑器:
* 所有类UNIX系统都会内置vi文本编辑器;
* 很多软件的编辑接口会调用vi,比如之前介绍过的 crontab ;
上述两个特点造就了可以成为vi高级版的vim如今地位。vim与vi最大的不同在于其语法高亮功能,该点使其不仅是一个文本编辑器,更是程序开发工具。
二、vi的使用
让vi或者vim如此受欢迎的主要原因,在于其三种模式:
- 一般模式
打开一个文件就进入该模式;该模式中可以移动光标、对文本进行 复制 粘贴 删除 查找 等操作;
- 编辑模式
一般模式下,按a
,i
,o
键可以进入(a
键 与i
键分别是在光标后面一位和当前位置切换到编辑模式,而o
键则是在光标的下面再创建一个空行,此时可敲击a
键进入编辑模式);该模式中可以对文件文本进行编辑,按Esc
键回到一般模式;
- 命令行模式
一般模式下,输入以:
,/
,?
开头的命令进入;该模式中光标在屏幕最下一行,可以输入一些对文件操作的命令,按Esc
键回到一般模式;
ps:一般模式和编辑模式、一般模式和命令行模式之间可以互相切换,但是编辑模式和命令行模式之间无法互相切换。
- 一般模式
一般模式和编辑模式常用快捷键
快捷键 | 说明 |
---|---|
h 、← | 光标向左移动一个字符 |
j 、↓ | 光标向下移动一行 |
k 、↑ | 光标向上移动一行 |
l 、→ | 光标向右移动一个字符 |
Ctrl+f 、PageDown | 向下翻页 |
Ctrl+b 、PageUp | 向上翻页 |
0 、Home | 光标移动到所在行最前字符 |
$ 、End | 光标移动到所在行最后字符 |
G | 光标移动到该文件最后一行 |
gg | 光标移动到该文件第一行 |
X 、Backspace | 删除光标前一个字符 |
x 、Del | 删除光标后一个字符 |
[rownum]Enter | 光标向下移动 [rownum] 行 |
dd | 删除(剪切)光标所在行 |
[rownum]dd | 删除(剪切)从光标处开始的 [rownum] 行 |
yy | 复制光标所在行 |
[rownum]yy | 复制光标处开始的 [rownum] 行 |
n | 显示搜索的下一个字符串 |
N | 显示搜索的上一个字符串 |
u | 撤销 |
. 、Ctrl+r | 重复上一个操作 |
p | 粘贴前剪切或复制的内容 |
3. 命令行模式常用命令
命令 | 说明 |
---|---|
:w | 保存 |
:q | 退出 |
:q! | 放弃修改强制退出 |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nonu | 隐藏行号 |
:[rownum] | 跳转到 [rownum] 行 |
:s/[str1]/[str2] | 将当前行第一个 [str1] 替换为 [str2] |
:s/[str1]/[str2]/g | 将当前行所有 [str1] 替换为 [str2] |
:%s/[str1]/[str2]/g | 将全文所有 [str1] 替换为 [str2] |
?[str] | 搜索 [str] |
/[str] | 反向搜索 [str] |
三、vim的功能
vim的保存文件、恢复与打开时的警告信息
当我们在使用vim编辑文件时,vim会把我们进行的操作保存在以编辑文件名加.swp命名的隐藏临时文件中;
当遇到其他用户在编辑同一个文件或者其他未知的原因导致vim崩溃后,我们可以使用这个临时文件恢复之前进行的操作;- 新建一个名为 xdltestvim.json 的文件,使用 Ctrl+z 快捷键使vim在后台运行
vim xdltestvim.json
使用
ls -al
命令查看当前文件夹信息,可以看到名为 .xdltestvim.json.swp 隐藏临时文件
当我们尝试继续编辑 xdltestvim.json 这个文件时,会出现提示:
并给出5个操作项:
操作项 | 说明 |
---|---|
[O]pen Read-Only | 只读模式打开文件 |
[E]dit anyway | 正常模式打开,不使用之前临时保存的操作,会改变之前的操作 |
[R]ecover | 恢复之前的操作,完成后需要手动删除隐藏临时文件 |
[Q]uit | 退出 |
[A]bort | 忽略,类似于 [Q]uit |
根据给定的操作快捷键可进行对应的操作。
块选择
vim一般模式和编辑模式下可以使用快捷键进行文本的块选择:v
字符选择,选择从按下v
开始到当前光标位置的字符:
V
行选择,选择从按下V
开始到当前光标位置的行:
Ctrl+v
矩形选择,选择从按下Ctrl+v
开始到当前光标位置所画出矩形框内的字符:
文本选择之后,可以使用之前介绍的 y
、d
、p
快捷键进行复制、删除、粘贴。
- 多文件编辑
当我们想要把一个文件中的文本复制到另一个文件中时,就可以使用vim的多文件编辑功能;
命令 | 说明 |
---|---|
vim [file1] [file2] | 同时编辑文件 [file1] 和 [file2] |
:files | 查看当前正在编辑的文件 |
:n | 切换到编辑下一个文件 |
:N | 切换到编辑上一个文件 |
- 多窗口功能
在vim命令行模式下使用:sp [filename]
命令在同时以多个窗口中打开多个文件;
多窗口功能常用快捷键:
快捷键 | 说明 |
---|---|
Ctrl+w j 、Ctrl+w ↓ | 切换到下一个窗口 |
Ctrl+w k 、Ctrl+w ↑ | 切换到上一个窗口 |
Ctrl+w q | 关闭下一个窗口,等同于先切换到下一个窗口再使用 :q 关闭 |
5. vim常用命令示意图
图片转自 deniro_li 的CSDN文章 vim 常用指令操作示意图