Linux常用命令之vi/vim文本编辑器
2023-03-18 本文已影响0人
羋学僧
vi是Linux/Unix下最常用的文本编辑器
vim是vi的升级版本
vim 就像 Windows 里面的 notepad++ 一样
安装
yum install vim -y
用法
vim requirements.txt
如果没有这个文件,就先创建一个
移动光标的位置,通过上下左右键就行
![](https://img.haomeiwen.com/i14270006/175f12979cfd9ee5.png)
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
![](https://img.haomeiwen.com/i14270006/e4559b0f1ff53865.png)
命令模式常见操作
1、行号
显示
:set nu
![](https://img.haomeiwen.com/i14270006/8957d7a2b361831d.png)
不显示
:set nonu
![](https://img.haomeiwen.com/i14270006/cfefa2864325fd9a.png)
2、光标定位
![](https://img.haomeiwen.com/i14270006/c27c987fded1b0f6.png)
3、搜索
# 搜索模式
/ # 前向搜索匹配,向光标下搜索关键字
? # 反向搜索匹配,向光标上搜索关键字
# 移动定位
n # 跳到下一个匹配的位置
N # 跳到上一个匹配的位置
* # 对光标当前所在的完整单词进行前向搜索匹配
# # 对光标当前所在的完整单词进行后向搜索匹配
g* # 前向搜索光标当前所在单词
g# # 反向搜索光标当前所在单词
重复上一次搜索//
查看搜索历史:history /
常用模式串系统
搜索以指定字符串开头或指定字符串结尾的行
用行首位置\^
指定开头字符串,比如/^nice
搜索以nice开头的
用行尾位置\$
指定结尾字符串,比如/nice$
搜索以nice结尾的
同时搜索多个字符串:用|
表示或,使用时需要用转义字符转义,即\|
,也可在开头使用魔术关键字\v
来实现不加转义字符,即/\v
。
字符组搜索:用[]同时匹配多个字符,比如/[0-9a-zA-Z]
表示匹配0-9、a-z、A-Z中的任意一个字符;用[^]
取反匹配,比如[^0-9]
表示排除0-9中的任意字符。
预定义的字符组:Vim为常见字符组提供了简写。查看所有预定义字符组:h /character-classes
。
\d # 数字[0-9]
\D # 非数字[^0-9]
\w # 单词字符[0-9a-zA-Z_]
\l # 小写字母[a-z]
\u # 大写字母[A-Z]
\S # 非空白字符(除空格和制表符外的所有字符)
\s # 空白字符(空格和制表符)
搜索重复字符
采用计数参数来实现重复搜索
{n}是精确匹配。 /[0-9]\{2\}匹配两个数字:"11",以及"111"中的"11"。
{n,m}是范围匹配。 /[0-9]\{2,3\}匹配 2 到 3 位数字:"11"和"111"。
{,m}是上限匹配。 /[0-9]\{,3\}匹配最多 3 个数字:"1","11"和"111"。
{n,}是下限匹配。 /[0-9]\{2,\}匹配最少 2 个或多个数字:"11"和"111"。
计数参数{0,}(零或多个)和{1,}(一个或多个)是最常见的搜索模式,Vim 为它们提供了特殊的操作符:*和+( +需要被转义,而* 可以正常运行而无需转义)。 如果执行/[0-9]*,功能与/[0-9]{0,}相同。
4、替换
![](https://img.haomeiwen.com/i14270006/279b8503de3a1b38.png)
5、复制粘贴
![](https://img.haomeiwen.com/i14270006/fb2fc431ced2d73f.png)
6、删除
![](https://img.haomeiwen.com/i14270006/543098ecd352b710.png)
7、撤销
![](https://img.haomeiwen.com/i14270006/c3e6c3f2c054e22f.png)
8、退出
![](https://img.haomeiwen.com/i14270006/3fd7dd9239773484.png)
编辑模式
1、进入编辑模式
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令 |