Linux 中 vi/vim 的使用

Linux中vi/vim 编辑器的使用

Linux 中最通用的可能就是vi和vim编辑器了(如果没有vim可以使用vi编辑器,命令基本上是通用的,我是没发现有哪个Linux上面没有vi的),但是刚刚使用vi/vim编辑器的时候很不不习惯,很多常用的操作不知道如何操作,所以现在系统的记录一下
注意:以下将vi和vim两个编辑器统称为vi,遇到不通用的用法我会注明。

模式说明

vi编辑器有三种模式(很重要),只有知道了这三种模式都是什么东西后才能够学会使用vi编辑器

  • 一般模式

用vi打开一个文件后首先进入的就是一般模式了,在这个模式中你可以使用方向按键移动光标,可以删除内容,也可以复制粘贴,但是无法对文件内容进行编辑

  • 编辑模式

在一般模式中按下“i,I,o,O,a,A,r,R”中的一个按键后就可以进入编辑模式了,其中不同的字母有不同的含义,后面会进行介绍。当进入编辑模式后在终端的左下角的最后一行会出现“INSERT”或"REPLACE”的字样,这样就代表进入编辑模式了,如果想退出编辑模式就按ESC键退出编辑模式就可以了,按下ESC后会退出到一般模式中

  • 命令模式

在一般模式中,输入":,/,?"这3个字符中的一个就可以进入到命令模式了,当然也是一样,不同的字符代表不同的含义,后面会介绍,如果要退出还是按下ESC键退回到一般模式

在这里插入图片描述

按键及命令说明

这里先说一下如何使用vi或vim打开一个文件,直接执行 vi filename 或 vim filename 就可以了,其中filename是你的文件名字,如果找不到它会自动新建

按键/命令说明
方向键 [↑][↓][←][→]向对应方向移动光标
[ESC]如果在非一般模式时退出当前模式返回到一般模式

以下为一般模式下的常用按键及命令

按键/命令说明
i,I以插入模式进入编辑模式 i为从目前光标的位置插入,I为在目前行的第一个非空格处插入
a,A以插入模式进入编辑模式 a 为从光标的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入
o,O以插入模式进入编辑模式 o为在目前光标所在的下一行处插入新的一行,O为在光标所在行的上一行出入新的一行
r,R以替换模式进入编辑模式 r 只会替换光标所在那一个字符一次,R会一直替换光标所在的文字
ctrl + f向下翻页,相当于 Page Down 键
ctrl + b向上翻页, 相当于Page Up 键
ctrl + d向下翻半页
ctrl + u]向上翻半页
0或Home将光标移动到当前行的起始位置
$或End将光标移动到当前行的末尾位置
G移动到这个文件的最后一行(注意是大写的)
nG移动光标到第n行(注意G是大写的,n代表行数)
gg移动光标到这个文件的第一行
nEntern为数字,将光标移动到第n行,比nG香
u复原前一个操作相当于撤销
ctrl + r重做上一个操作,和u相反
.这个玩意是小数点,意思是重复上一个操作
查找命令

下面的内容查找和替换的了啊,注意还是在一般模式下

按键/命令说明
/word向下查找word字符串,word是要查找的内容
?word向上查找word字符串
n查找下一个
N查找上一个
:n1,n2s/word1/word2/g在n1行和n2行之间将word1替换为word2
:1,$s/word1/word2/g从第一行到最后一行将word1替换word2
:1,$s/word1/word2/gc功能和上一个一样,但是在替换前会让用户进行确认
删除,复制,粘贴

从这嘎达开始就是删除复制粘贴这些常用的命令了,注意还是在一般模式下

按键/命令说明
dd删除光标所在的一整行
ndd删除光标所在的向下n行
d1G删除光标所在行到第一行的所有数据
dG删除光标所在行到最后一行的所有数据
d$删除光标到行末的内容
d0删除光标到本行最开始的所有内容
yy复制当前行
nyy复制光标所在的向下n行
y1G复制光标所在行到第一行的所有数据
yG复制光标所在行到最后一行的所有数据
y$复制光标到行末的内容
y0复制光标到本行最开始的所有内容
p,Pp粘贴到光标所在的下一行,P粘贴到光标所在的上一行
J将下一行和当前行拼接在一起
命令

这个位置是应用于命令模式的命令,不用可以的切换到命令模式,直接在一般模式下输入:command就可以执行命令模式下的命令了,其中command是你要执行的命令

命令说明
:w保存
:w!强制保存,比如当前文件如果是只读文件,是无法进行保存的,使用w!可以尝试保存,具体能否成功保存还要看你对该文件是否有足够的权限
:q退出vi
:q!强制退出,不保存修改内容
:wq保存退出
:wq!强制保存退出
:w[finename]另存为filename
:! command暂时离开vi到命令行模式下执行command的显示结果。例如":! ls /home "即可在vi中查看/home下的内容
:set nu显示行号
: set nonu关闭行号

块拷贝

我们经常需要选中一部分文本进行拷贝,但是上面说的拷贝是应用到行么,所以不是很方便,接下来就要说说块拷贝了,了解了块拷贝以后就可以想怎么复制就怎么复制了

命令说明
v字符选择,会将光标经过的地方高亮选择
V行选择,会将光标经过的行高亮
Ctrl + v块选择,可以用长方形的方式选择数据
y将高亮的地方复制
d将高亮的地方删除

Notice: 以上内容部分整理自《鸟哥的Linux私房菜》
详细内容请查询《鸟哥的Linux私房菜 第三版》10.2 节

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值