Linux之vi编辑器入门使用教程

vi编辑器

提示:本文主要是关于vi编辑器的基本使用,换言之就是vi的入门操作。




一、什么是vi和vim编辑器?

Vi,是一款由加州大学伯克利分校,Bill Joy研究开发的文本编辑器。
vi编辑器是所有Unix及Linux系统下标准的编辑器,它相当于windows系统中的记事本一样,但它可比windows的记事本要强大的多,丝毫不逊色于其他的文本编辑器。
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,是程序员中钟爱的编辑器。也就是说vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

简单的来说, vi 是老式的字处理器,虽然功能已经很齐全了,但是还是有可以进步的地方。 vim 则是对程序开发者是一项很好用的工具。vim并不是严格意义上的文本编辑器,就连vim官方也认为vim是一个程序开发工具而不是文字处理软件。
不过,对于我们学习者来说,这些历史了解就好,不需要太过于深究。总的来说,可以把vi和vim当成同一个文本编辑器来学习,两者没有本质上的差异,只是vim功能更强些,基本功能都是一一致的,而本文讲的就是基本的使用。
虽然,vi对于新手来说确实不够友好,但是慢慢的熟练使用后,将会极大的提高效率,尤其是对于码字的人来说特别爽,它将释放鼠标,完全有键盘操作,不用切换鼠标,非常省事儿。

vi官网:https://www.vim.org/

二、Vi三模式

vi编辑器有三种模式:命令模式,命令行(底行/末行)模式,插入模式

命令模式:可以使用简单的命令进行文本内容的操作

底行模式:可以使用复杂点的命令进行文本内容操作

插入模式:可以直接编辑文本内容

注: 三种模式中,可能有的模式的叫法各有所以,但是都是一回事儿,如果像要了解官方的定义,去官网查询,此处我便按照我的习惯叫法来。

如下图(小编画的一个简略图)所示:

vi的三模式关系图
命令模式→插入模式:按键表

按键作用
a(append mode)光标后插入文本
i(insert mode)光标前插入文本
o( open a new line above)在当前行的下方新建一行,并在新行处插入文本
A(Append at end of line)在当前行的行尾插入文本
I(Insert at beginning of line)在当前行的行首插入文本
O( Open a new line above)在当前行的上方新建一行,并在新行处插入文本

退出vi编辑器:

按键作用
ZZ(命令模式)保存并退出
q(底行模式)退出但不保存
wq(底行模式)退出并保存
q!(底行模式)强制退出但不保存
wq!(底行模式)强制退出并保存

注:在退出的时候可能会遇见无法退出,就算加上“!”强制也没用。这是因为,该文本的权限不足(可能被设为该用户的只具有只读权限,这时候需要,不保存退出,修改为读写权限后重新编辑。所以,在用vi编辑器修改文件之前,需要看看是否有相应的权限,否则,所进行编辑的工作将是无用功,还得修改文件权限后重新编辑文件。

三.命令模式

命令作用
x删除一个字符
dw删除一个单词
3dw删除3个单词
dd删除一行,光所在行
2dd删除2行,光标所在行和下一行
r替换一个字符,在某个字符上按r,然后再按另一个新字符,这新字符就会替换原来的老字符
cw先删除这个单词,再进入到编辑模式
cc先删除当前行,再进入到编辑模式
C(大写)删除光标所在位置到当前行的末尾,然后进入编辑
yy复制当前行
yw复制一个单词
p粘贴复制的内容
~shift+~,把字符进行大小写转换
J (大写)把当前行和下一行进行连接
u撤销之前的操作
gg将光标移动到文章的第一行
G(大写)将光标定位到文件末尾
nG将光标定位到文件第n行,这里n代表的是行号(数字)
/hello查找和hello的位置(单词之间以空格作为分隔线),然后使用n可以定位到下一个匹配的地方,从上往下查找(hello可以换成任何字符串)
?test查找和test的位置,然后使用n可以定位到下一个匹配的地方,从下往上查找
e将把光标移动到下一个字的字尾
w将光标移至下一个字的字首
b将光标移至上一个字的字首
h将光标左移
l将光标右移
j将光标下移
k将光标上移
$将光标移动到当前行的行尾
0或者^将光标移动到当前行的行首

三.底行模式

命令作用
:2,4d删除第2行到第4行
:2,4co5拷贝第2行到第4行之间的内容到第5行后面
:1,2m7移动第1行到第2行之间的内容到第7行后面
:w保存
:w newfile保存为另一个新文件,相当于另存为功能
:q退出
:q!强制退出
:wq!保存并强制退出
:set nu显示行号
set nonu是取消行号
:5将光标直接定位到第五行
:r b.txt将b.txt文件内容插入到当前文件中
:1,$s/hello/test/g将文件中从1行开始,所有的hello替换成test
%s/sbin/ssbin将全文中的sbin字符串替换为ssbin
1,10s/bin/mybin将第一行到第10行的bin字符串替换为mybin

总结

以上便是我查找资料完善平常使用的vi编辑器的一些命令和经验。这些命令很多,全部记住是不太现实的,所以不用完全记住,我们在不断练习中,有意识的不断去使用这些命令,当我们熟练后,下意识就能使用时,就会发现它如此的美妙。开始是痛苦的,坚持下去,最后会收获幸福。
另外,用h、j、k、l操作上下左右的命令,我是很少用,经常使用上下左右方向键来完成。
除此之外,在我们使用命令时,只是去记忆字母也是比较困难的,这就需要联想一下,它是哪一个英语单词缩写而来的,比如删除一个单词dw(delete word)、p(paste)粘贴。单词联想,不一定要十分准确,只需要自己能记住就行。如果有要求比较高的水友,可以去官网查查或者查找其他资料,不介意的话可以与小编分享一下,我完善这个此文,以供大伙学习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值