本文转载自:简书作者 IstvanShaw 的文章 Vim编辑器入门
我们常说: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 |
粘贴前剪切或复制的内容 |
- 命令行模式常用命令
命令 | 说明 |
---|---|
: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 关闭 |
- vim常用命令示意图
图片转自 deniro_li 的CSDN文章 vim 常用指令操作示意图