vim
vi: 强大的文本编辑器
多模式文本编辑器
- 多模式生产原因
- 四种模式
- 正常模式(Normal-mode)
- 插入模式(Insert-mode)
- 命令模式(Command-mode)
- 可视模式(Visual-mode)
vim 的正常模式
i: 表示从光标当前位置开始插入
**I:**无论光标在那个位置,使用I ,光标会回到当前光标所在行的开头
a: 表示从光标后一位的位置开始插入
A: 表示从当前光标所在行的末尾开始插入
**o:**表示从光标所在行的下一行开始插入
O: 表示从光标所在行的上一行开始插入
yy: 表示复制
nyy: 表示复制几行
p: 复制
y$: 表示从光标当前位置开始复制到结尾
dd :剪切
u: 撤销
**x:**删除光标所在的字符
:set nu: 可以显示当前文件的行号
:set nonu 取消显示行号
## 当我们想要 永久显示行号,打开文件就有
vim /etc/vimrc
set nu ## 在文件的最后一行添加此内容
gg: 表示 将光标移动到当前文件的第一行
GG: 表示将光标移动到当前文件的结尾
shift+^: 表示将光标快速移动到光标所在行的开头
shift+$: 表示将光标快速移动到光标所在行的结尾
vim 的命令模式
:w /root/a.txt 保存到想要保存的位置,前提条件是 直接vi 没有vim 文件名
:! 可以临时退出 比如想要看一下IP地址
## 当我正在编辑一个文件,想要查看一下IP地址
444444
555555
6c6c6c6c66c
6c66iiiiiiiiiiic
:! ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.238.11 netmask 255.255.255.0 broadcast 192.168.238.255
inet6 fe80::f716:ce02:4c3c:f2f7 prefixlen 64 scopeid 0x20<link>
inet6 fe80::1cff:e778:b0d8:a3a9 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:9d:16:5c txqueuelen 1000 (Ethernet)
RX packets 50162 bytes 17416959 (16.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 36130 bytes 4002047 (3.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 36 bytes 2996 (2.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 36 bytes 2996 (2.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
请按 ENTER 或其它命令继续
/要查找的内容 可以查找想要查找的内容
n: 查找下一个内容
N:查找上一个内容
## 只能替换当前光标所在行,注意当前行要有被替换的内容
:s/old/new
## 只能替换一个内容,这个无所谓光标在哪里,单次替换
:%s/old/new
## 替换所有,多次替换
:%s/old/new/g
## 加入替换范围
3,5s/old/new/g ## 表示将3-5行内所有想替换的内容多次替换
3,5s/old/new ## 表示将3-5行内只替换一次
:q 退出
:wq 保存退出
:wq! 保存强制退出
vim 可视模式
进入可是模式的方式
v:字符可视模式
V:行可视模式
ctrl+v: 块可是模式 配合d和I(大写的i)命令可以进行块的便利操作