引言:
在Linux中我们常用的文本编辑器有vi、vim(vi的增强版本)。而且vi编辑器不仅仅是适用于Linux,它是所有Unix以及Linux系统下的标准编辑器,几乎适用于Unix、Linux系统的所有版本。
vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理字符界面中,永远不是图形界面的编辑器能比的。它能轻易地创建和修改文本文件,维护Linux系统中的配置文件。
学会它,你就拥有了打开Linux大门的钥匙。
主要内容:
vi编辑器的三种工作模式
命令模式的基本命令操作
末行模式的基本命令操作
vi编辑器的三种工作模式:
1.命令模式command mode):
控制屏幕光标的移动,字符、字或行的删除、移动、复制到某区段。以及进入插入模式(Insert mode)和末行模式( last line mode)。
2.插入模式(Insert mode):
只有在插入模式(Insert mode)下,才可以做文字输入,按[ESC]键可回到命令行模式。
3.末行模式(last line mode):
将文件保存或退出vi,也可以设置插入环境,如寻找字符串、列出行号……等。
4.三种工作模式间的切换:
注意着三个模式之间不是任意切换的,只有在命令模式下才能进入插入模式和末行模式。
这里解释一下“a、i、o、O”等键都是进入编辑模式,那它们之间有什么区别:
按[a]键进入插入模式后,是当前光标所在位置之后开始输入文字;
按[i]键进入插入模式后,是当前光标所在位置之前开始输入文件;
按[o]键进入插入模式后,是在光标所在位置下一行添加新的一行,从行首开始输入文字;
按[O]键进入插入模式后,是在光标所在位置上一行添加新的一行,从行首开始输入文字。
下面是我用来演示的文本,我光标统一放在“this”的“t”上,然后test1、test2、test3、test4分别演示[a]、[i]、[o]、[O]键的功能:
5.保存与退出vi编辑器:
: w 文件名 (保存指定文件)
: wq (保存所有编辑内容并退出vi)
: q! (输入q!, 不保存强制退出vi)
命令模式的基本操作:
1.光标的移动:
在这里补充一个[M]键,跳转到屏幕中间。注意是屏幕中间,而不是整篇文本中间。
2.删除以及复制、粘贴:
下面分别演示每个键的功能:
[x]或[Del]键:
[dd]键:
[#dd]键(输入“2dd”):
[d^]键:
[d$]键:
补充一个[dw]键,是用来删除单个的单词,光标放在单词的首字母上,按[dw]键就能删除该单词。
[yy]键与[p](小写)键、[P](大写)键:因为复制与粘贴得结合起来才能看见效果
[#yy]键(输入“2yy”)与[p](小写)键、[P](大写)键:
补充一个[shift+r]键,当你按完[shift+r]键,你接下来输入的内容将替换光标所在位置的原内容。
3.文件内容查找:
[/字符串] :我这里直接查找“test”
[?字符串] :直接查找“test”
因为一个文本里可能有多个被查找的字符串,所以[n]、[N]是定位上一个或下一个被查找的字符串,功能简单,类似于上下键,这里就不做演示了。
4.撤销编辑及保存退出:
[u]键类似于咱们平时编辑word文档是的“撤销”键,[U]键是一次性撤销所有本次操作,[ZZ]键相当于保存退出。功能简单易懂,便不做演示了。
末行模式的基本操作:
1.保存文件及退出vi编辑器:
这些命令简单易懂,便不做演示了。
2.打开新文件或读入其它文件:
[e /路径/文件名]命令:其中e就是edit编辑的意思,下面我会演示,例如我在编辑test01.txt时想,直接去编辑test02.txt,那么我就可以用这条命令。注意:命令是在末行模式下输入
[r /路径/文件名]命令:其中r解释read读取的意思,下面我会演示,例如我在编辑test01.txt时想,直接读取test02.txt的文件到test01.txt中,那么我就可以用这条命令。
3.文件内容替换:
[:s /old/new]命令:例如我想将第一行第一个的“this”替换为“the”,此时可以用这个命令,需要注意的一点就是它只替换第一个字符。
[:s /old/new/g]命令:当我们想将第一行的所有“this”替换为“the”,此时可以用这个命令,其实只要在替换一个的命令基础上结尾加上“g”即可。
[:#,# s/old/new/g]命令:当我们想将指定行的所有“this”替换为“the”,此时可以用这个命令。“#,#”
表示行的范围,例如第3行到第5行就是“3,5”。
[:% s/old/new/g]命令:当我们想将整个文件范围内的所有“this”替换为“the”,此时可以用这个命令。
[:s /old/new/c]命令:
原文地址:https://blog.51cto.com/14449541/2429599