vim是Linux系统内置的【文本编辑器】,用于查看或编辑文件的内容,学会使用vim编辑器,有助于增加日常运维的便捷性。通常我们只需要记住最基础的操作即可完成日常的编辑。
举例说明:当我们需要修改一份配置文件,此处以test.txt文件为例,打开终端(Ctrl+Alt+T),输入sudo vim test.txt
,输入电脑的密码后回车,进入编辑模式
在需要编辑的位置,插入i键,界面出现插入文字,即可在文字前进行编辑。
内容编辑完成后,按Esc键,然后按:wq! 回车即保存成功。
vim编辑器有三种模式:命令模式、编辑模式、末行模式。
- 「命令模式」:可以进行删除、复制、粘贴等快捷操作。
- 「末行模式」:可以通过命令操作文件,比如搜索、保存、退出等。
Vim编辑器是系统自带的,无需安装;右键点击桌面空白处-选择打开命令终端即可使用vim编辑器
vim 文件路径
例:vim test.txt
打开文件时,将光标移动到【指定行】
打开文件时,光标停在了第三行(默认停在首行)
vim +行数 文件路径
例:vim +3 test.txt
打开文件时,「高亮」显示关键字
vim +/关键字 文件路径
vim +/root test.txt
【注1】:使用vim打开文件时,尽量使用 Tab 键补全文件名,如果文件名不存在,则会创建一个新的文件。
【注2】:加号 + 是语法格式,不要漏掉
打开文件后,默认就是命令模式,可以进行光标移动、复制粘贴、搜索替换等操作。
指令 |
作用 |
h 或 左方向键(←) |
光标向左移动一个字符 |
l 或 右方向键(→) |
光标向右移动一个字符 |
k 或 上方向键(↑) |
光标向上移动一个字符 |
j 或 下方向键(↓) |
光标向下移动一个字符 |
0 或 Ctrl+6 或 home键 |
光标移动到行首 |
Ctrl+4 或 end键 |
光标移动到行尾 |
Ctrl + f 或 pg up键 |
【屏幕】向下移动一页 |
Ctrl + b 或 pg dn键 |
【屏幕】向上移动一页 |
gg |
移动到文件的第一行 |
G |
移动到文件的最后一行 |
nG |
移动到文件的第n行 |
指令 |
作用 |
/字符串 + 回车 |
向下搜索指定字符串 |
n |
继续向下搜索下一个字符串 |
?字符串 + 回车 |
向上搜索指定字符串 |
N |
继续向上搜索下一个字符串 |
:%s/word1/word2/g |
将文件中的word1替换为word2 |
:%s/word1/word2/gc |
将文件中的word1替换为word2,但替换前需要用户确认! |
:1,10s/word1/word2/g |
将第1行到第10行的word1替换为word2 |
指令 |
作用 |
x |
删除后一个字符 |
X |
删除前一个字符 |
dd |
剪切一行 |
数字dd |
剪切多行 |
yy |
复制一行 |
数字yy |
复制多行 |
p |
粘贴到下一行 |
P |
粘贴到上一行 |
u |
撤回操作 |
Ctrl+R |
撤回刚才的撤回操作 |
.(小数点) |
重复刚才的操作 |
【注1】:vim中的「数字键」代表重复次数,可以配合其他指令简化操作
例如:10↓或10j可一次向下移动10行。
2p可以一次粘贴2行
2dd可以一次剪切2行
【注1】:命令模式中,敲击的键盘会被识别为命令,而不是输入内容。
命令模式中按下 i 键进入编辑模式,也就是vim打开文件后按下 i 键进入编辑模式。
指令 |
作用 |
i |
进入输入模式,进入后显示 – INSTER– |
o |
进入输入模式,在光标下一行插入新行,进入后显示 – INSTER – |
R |
进入取代模式,输入的值会取代光标所在的内容,进入后显示 – REPLACE – |
Esc键 |
退出编辑模式(输入模式) |
【注1】:输入模式和取代模式都是编辑模式,屏幕左下角出现 INSTER 或 REPLACE 字样,表示进入了编辑模式,这时才可以输入内容。
【注2】:按下esc键,确认下右下角 – INSTER – 或 – REPLACE – 字样消失后,再进行其他操作,以免误操。
【注3】:想要「撤回」编辑模式下的操作,需要先退出编辑模式,再按 u 键。
英文状态的 :键 进入末行模式
命令模式 或 vim打开文件时,按下 : 键,左下角出现 :时,即表示末行模式。
指令 |
作用 |
:w |
保存 |
:q |
退出 |
:wq |
保存后退出 |
:q! |
不保存,强制退出 |
:set nu |
显示行号 |
:set nonu |
取消显示行号 |
:w[文件名] |
将编辑后的内容保存到另一个文件中(另存为) |
:2,5 w [文件名] |
将第2到5行的内容保存到另一个文件中(指定行另存为) |
:r[文件名] |
输入另一个文件的内容,到光标的下一行 |