Linux 系统文本编辑器vi常用命令详解(操作演示)
引言:
在Linux中我们常用的文本编辑器有vi、vim(vi的增强版本)。而且vi编辑器不仅仅是适用于Linux,它是所有Unix以及Linux系统下的标准编辑器,几乎适用于Unix、Linux系统的所有版本。 主要内容:vi编辑器的三种工作模式 vi编辑器的三种工作模式:1.命令模式command mode): 2.插入模式(Insert mode): 3.末行模式(last line mode): 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]命令: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – find中的-prune选项有什么作用?
- kubeadm安装Kubernetes1.15安装部署详解-Part 2
- Linux – Bash将String重定向到文件
- Linux(CentOS 7)下安装postgres
- linux – DRBD我的节点之间没有同步
- 不要在linux上启用net.ipv4.tcp_tw_recycle参数
- Android NDK – 构建TessTwo(适用于Android的Tesseract工具
- Linux只看到一个4磁盘eSATA机箱的磁盘
- redhat – 如何自动为NetworkManager-openconnect提供密码?
- Supervisord – 在supervisord.conf中使用变量INSIDE