1、简介
在日常开发中,在Linux系统中经常需要我们在命令行窗口编辑文件,vim作为Linux系统中一个纯文本编辑器,会经常使用,vim编辑器分为五三种模式:普通模式,编辑模式,命令模式。几种模式的关系如下。
我们在之前的文章中也介绍使用xshell和xftp两个软件实现通过使用远程连接,使用宿主机上的文本编辑器编辑文件(如何在 Xftp 中使用自定义编辑器编辑远程服务器文件_xsftp编辑文件,如何使用指定编辑器-CSDN博客)。但是这种要借助工具的前提下,本文详细介绍不借助工具怎样熟练使用vim编辑文本文件。
2、几种模式的介绍和常用命令总结
如果没有vim命令需要通过如下命令安装:
yum install vim-enhanced -y
2.1、普通模式
使用vim命令打开一个文件,就是默认的普通模式,在这个模式中不能进行编辑输入操作,只能上下左右移动光标,但是可以执行一些复制、粘贴、删除操作。
2.1.1、光标移动操作
命令 | 描述 |
G(或shift+g) | 将光标移动到文件最后一行 |
gg | 将光标移动到文件第一行开头 |
ngg | 将光标移动到文件的第n行 |
0 | 数字0是将光标移动到当前行开头 |
$ | 将光标移动到当前行结尾 |
n +<enter> | 将光标从当前位置向下移动n行 |
H | 将光标移动到当前窗口最上方那一行 |
L | 将光标移动到当前窗口最下方那一行 |
M(不常用) | 将光标移动到当前窗口中间那一行 |
2.1.2、搜索与替换操作
命令 | 描述 |
/word | 从光标位置开始,向下寻找名为word的字符串 |
?word | 从光标位置开始,向上寻找名为word的字符串 |
n | 从光标位置开始,向下重复前一个搜索动作 |
N | 从光标位置开始,向上重复前一个搜索动作 |
:g/A/s//B/g | 把符合A的内容全部替换成B,以‘/’为分隔符,也可以使用@、#等替代 |
:n1,n2s/A/B/gc: | n1,n2为数字,在n1,n2行之间寻找A,用B替换 |
2.1.3、复制、粘贴、删除操作
命令 | 描述 |
yy | 复制光标所在的行 |
nyy | n为数字,复制光标开始向下共n行 |
p/P | p是将已经复制的粘贴到光标的下一行,P是将已经复制的粘贴到光标的上一行 |
dd | 删除光标所在的当前行 |
ndd | n为数字,删除光标开始向下共n行 |
u | 恢复前一个执行的操作 |
. | 点号,重复前一个执行的操作 |
x | 向后删除字符 |
X | 向前删除字符 |
d1G | 删除当前行至第一行 |
dG | 删除当前行最后一行 |
d0 | 删除当前光标所在位置至行首 |
d$ | 删除当前光标所在位置至行尾 |
2.2、编辑模式
在普通模式下不能进行编辑操作,只有按下“i、I、o、O、a、A、r、R、s、S”才能进入编辑模式,开文件是否进入编辑模式一个重要特征就是在窗口的左下角有插入标记“--INSERT--”或"--插入--"。
命令 | 描述 |
i | 在当前光标处插入文字 |
I | 在当前行行首插入字符 |
a | 在当前光标所在处下一个字符插入文字 |
A | 在当前行行尾插入字符 |
O | 在当前行上一行插入新的行 |
o | 在当前行下一行插入新的行 |
ESC | 退出编辑模式,回到命令行模式 |
注:其他几种进入编辑模式的命令不常用,此处不再介绍。
2.3、命令模式
在普通模式下输入“ :,/,? ”时,光标会自动定位在那一行,在这个模式中可以执行保存、退出、搜索、替换、显示行号等操作。
命令 | 描述 |
:wq | 退出并保存 |
:wq! | 退出并强制保存 |
:q! | 强制退出 |
:n1,n2 w fine_name | 将n1到n2行保存到file_name中 |
:n1,n2 co n3 | 将n1到n2行复制到n3的位置下 |
:n1,n2 m n3 | 将n1到n2行剪切到n3的位置下 |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
3、一般人不知道的用法
以上介绍使用vim命令编辑文本文件的常用操作,但是还有一些比较便捷操作很少接触,主要由以下几个。
命令 | 描述 |
vim file +n | 使用vim打开文件光标定位到第n行行首 |
vim file + | 使用vim打开文件光标定位到最后一行行首 |
vim file +/word | 使用vim打开文件光标定位到第一个与word匹配的字符串行首 |
4、总结
本文详细介绍如何使用vim命令编辑文本文件,涵盖了开发过程中所有常用命令,掌握这些命令基本就可以熟练在Linux中编辑文本文件了。
本人是一个从小白自学计算机技术,对运维、后端、各种中间件技术、大数据等有一定的学习心得,想获取自学总结资料(pdf版本)或者希望共同学习,关注微信公众号:it自学社团。后台回复相应技术名称/技术点即可获得。(本人学习宗旨:学会了就要免费分享)