vim指令教程
0.写在前面
本人最近刚刚完成了学校的软件课设,基本算得上除了毕设最后一个课设了。题目不难,就是创建linux虚拟机,并完成相应的系统编译,编译一个内核模块以及一个应用模块。第一次在linux上使用vim编辑文件,所以决定在大佬文章的基础上记录一下。
原文链接:https://blog.csdn.net/wangyuxiang946/article/details/126560108
1.三种模式
vim编辑器有三种模式:命令模式、编辑模式、末行模式。
-
命令模式:可以进行删除、复制、粘贴等快捷操作。
-
编辑模式:可以编辑文件内容。
-
末行模式:可以通过命令操作文件,比如搜索、保存、退出等。
2.三种打开方式
注意:使用vim打开文件时,尽量使用 Tab 键补全文件名,如果文件名不存在,则会创建一个新的文件。
- 打开指定文件:
vim 文件路径
[root ]# vim /test/a.txt
提示:输入:wq 退出文件。
- 打开文件时,将光标移动到指定行:
vim +行数 文件路径
[root ]# vim +3 /test/a.txt
打开文件时,光标停在了第三行(默认停在首行)
注意:加号 + 是语法格式,不要漏掉
- 打开文件时,高亮显示关键字:
vim +/关键字 文件路径
[root ]# vim +/root /test/a.txt
打开文件时,字符串 root 已高亮显示
3.命令模式
打开文件后,默认就是命令模式,可以进行光标移动、复制粘贴、搜索替换等操作。
注意:命令模式中,敲击的键盘会被识别为命令,而不是输入内容。
3.1 移动光标
指令 | 作用 |
---|---|
h 或 左方向键(←) | 光标向左移动一个字符 |
l 或 右方向键(→) | 光标向右移动一个字符 |
k 或 上方向键(↑) | 光标向上移动一个字符 |
j 或 下方向键(↓) | 光标向下移动一个字符 |
0 或 Ctrl+6 或 home键 | 光标移动到行首 |
Ctrl+4 或 end键 | 光标移动到行尾 |
Ctrl + f 或 PgUp键 | 【屏幕】向下移动一页 |
Ctrl + b 或 PgDn键 | 【屏幕】向上移动一页 |
gg | 移动到文件的第一行 |
G | 移动到文件的最后一行 |
nG | 移动到文件的第n行 |
3.2 搜索替换
指令 | 作用 |
---|---|
/字符串 + 回车 | 向下搜索指定字符串 |
n | 继续向下搜索下一个字符串 |
?字符串 + 回车 | 向上搜索指定字符串 |
N | 继续向上搜索下一个字符串 |
:%s/word1/word2/g | 将文件中的word1替换为word2 |
:%s/word1/word2/gc | 将文件中的word1替换为word2,但替换前需要用户确认! |
:1,10s/word1/word2/g | 将第1行到第10行的word1替换为word2 |
3.3 复制粘贴删除
指令 | 作用 |
---|---|
x | 删除后一个字符 |
X | 删除前一个字符 |
dd | 剪切一行 |
数字dd | 剪切多行 |
yy | 复制一行 |
数字yy | 复制多行 |
p | 粘贴到下一行 |
P | 粘贴到上一行 |
u | 撤回操作 |
Ctrl + r | 撤回刚才的撤回操作 |
.(小数点) | 重复刚才的操作 |
提示:
1)vim中的数字键代表重复次数,可以配合其他指令简化操作,比如:
-
10↓或10j可一次向下移动10行。
-
2p可以一次粘贴2行
-
2dd可以一次剪切2行
-
以此类推…
2)输入的数字可以在右下角查看
3)Xshell右下角的 CAP 可判断大小写,高亮代表大写,灰色代表小写
4.编辑模式
命令模式中按下 i 键进入编辑模式,也就是vim打开文件后按下 i 键进入编辑模式。
指令 | 作用 |
---|---|
i | 进入输入模式,进入后显示 – INSTER– |
o | 进入输入模式,在光标下一行插入新行,进入后显示 – INSTER – |
R | 进入取代模式,输入的值会取代光标所在的内容,进入后显示 – REPLACE – |
esc键 | 退出编辑模式(输入模式) |
提示:
1)输入模式和取代模式都是编辑模式,屏幕左下角出现 – INSTER – 或 – REPLACE –字样,表示进入了编辑模式,这时才可以输入内容。
2)按下esc键,确认下右下角 – INSTER – 或 – REPLACE – 字样消失后,再进行其他操作,以免误操。
3)想要「撤回」编辑模式下的操作,需要先退出编辑模式,再按 u 键
5.末行模式
英文状态的 :键 进入末行模式
命令模式 或 vim打开文件时,按下 : 键,左下角出现 :时,即表示末行模式。
指令 | 作用 |
---|---|
:w | 保存 |
:q | 退出 |
:wq | 保存后退出 |
:q! | 不保存,强制退出 |
:set nu | 显示行号 |
:set nonu | 取消 显示行号 |
:w [文件名] | 将编辑后的内容保存到另一个文件中(另存为) |
:2,5 w [文件名] | 将第2到5行的内容保存到另一个文件中(指定行另存为) |
:r [文件名] | 输入另一个文件的内容,到光标的下一行 |