vim编辑器
一、vim编辑器的三种模式
1、命令行模式
vim 文件名 打开的就是命令行模式
命令行可以进行一些基本的复制、删除、跳转、撤销、移动等操作
命令 | 含义 | 备注 |
---|---|---|
yy | 复制光标所在行 | 3yy表示复制3行 |
p(小写p) | 光标所在行后面粘贴 | |
P(大写P) | 光标所在行前面粘贴 | |
gg | 光标快速跳到文件首行,并且定位到首字符 | 3gg表示快速跳到文件第3行行首字符 |
G | 光标快速跳到文件尾行,并且定位到首字符 | |
home键 | 跳转到行首 | Shift+6 即 ^ 符号表示行首 |
end | 跳转到行尾 | Shitf+4 即 $ 符号表示行尾 |
dd | 删除光标所在行 | 3dd表示删除3行(包括光标所在行) |
d^ | 从光标位置删至行首,不包括光标位 | |
d$ | 从光标位置删至行尾,包括光标位,与D作用相同 | |
dG | 删除光标所在行以及下面所有行 | |
dgg | 删除光标所在行以及上面所有行 | |
x(小写) | 删除光标所在字符后面一个字符,3x删除3个字符 | 类似于windows下的delete键 |
X(大写) | 删除光标所在字符前面一个字符,3X删除3个字符 | 类似windows下的backspace键 |
u | 撤销操作 | ctrl+r 取消撤销 |
代码实例
1)环境准备
- 删除/tmp目录里的所有内容
- 将/etc/passwd文件拷贝到/tmp目录里
2)使用vim工具打开文件
用法1:vim 文件名 默认进入命令行模式
[root@localhost ~]# vim /tmp/passwd
用法2:vim +数字 文件名 打开指定的文件,并且将光标移动到指定行
[root@localhost ~]# vim +5 /tmp/passwd
用法3:vim+/关键字 文件名 打开指定的文件,并且高亮显示关键词
[root@localhost ~]# vim +/shutdown /tmp/passwd
2、编辑模式
功能:编辑文件内容
进入方式:
在命令行模式下按:
命令 | 含义 |
---|---|
i | 在光标所在字符前开始插入 |
a | 在光标所在字符后开始插入 |
o | 在光标所在行的下面另起一新行插入 |
I(大i) | 在光标所在行的行首开始插入,如果行首有空格则在空格之后插入 |
A | 在光标所在行的行尾开始插入 |
O | 在光标所在行的上面另起一行开始插入 |
S | 删除光标所在行并开始插入 |
3、底行模式
1)如何进入底行模式
- 命令行模式进入底行模式——>按冒号**😗*
- 编辑模式进入底行模式——>先按Esc退出到命令行模式,然后再按冒号**😗*
2)底行模式功能
- 保存和退出
- 保存文件,命令**:w**;另存为到其他文件,命令**:w 文件名**
- 保存退出,命令 :wq ;强制保存退出 :wq!
- 退出不保存,命令 :q ;强制退出 :q!
- 命令 :x 在文件没有修改的情况下,表示直接退出(等价于:q),在文件修改的情况下表示保存并退出(:wq)
- 搜索替换
搜索摸索
:/root n往下匹配;N往上匹配
替换模式
:%s/root/ROOT/ 全文搜索,替换每一行匹配到的第一个关键字 :%s/root/ROOT/g 全文搜索,替换每一行所有匹配的关键字 :%s/root/ROOT/gc 交互式替换 :%s/\/sbin\/nologin/\/bin\/bash/ \转义符 :%s#/sbin/nologin#/bin/bash#g 更换分隔符 :7s/shutdown/SHUTDOWN/g 只替换第7行的内容
取消高亮
:noh (no highlight)
- 其他功能
临时设置行号
:set number 或 :set nu
永久设置行号
echo "set number" >> /etc/vimrc
:set list 查看控制符
地址定位
:1,5 w /tmp/5.txt 保存前5行内容到/tmp/5.txt
:r /tmp/5.txt 在光标所在行下面读取/tmp/5.txt文件内容
:3r /tmp/5.txt 在当前文本的第3行后读取/tmp/5.txt文件
:1,8d 删掉文本的1到8行
:nr !command 在第n行下面读取命令所执行的结果
:n! command 用命令的执行结果替换第n行内容
二、多窗口编辑问题
当两个终端同时打开或者意外结束文件时,会产生一个.swap文件 (交换文件)
举例说明:
你在两个终端同时打开/tmp/passwd文件,会产生/tmp/.passwd.swp。这时,有六个按钮可以使用:
O(pen for Read-Only):打开成只读文件。
E(dit):用正常方式打开要编辑的文件,并不会载入暂存文件的内容。这很容易出现两个用户相互改变对方的文件的问题。
R(ecover):加载暂存文件的内容。
D(elete):如果你确定这个暂存文件是没有用的,则可以删除。
Q(uit):不进行任何操作,回到命令行。
A(bort):忽略这个编辑行为,和Q类似。
需要注意的是: 这个暂存文件不会因为你结束vim后自动删除,必须要手动删除。否则每次打开对应的文件时都会出现这样的提示。
三、可视化模式
-
按键:ctrl + v(可视块)或V(可视行),然后按下↑ ↓ ← →方向键来选中需要复制的区块,按下y 键进行复制(不要按下yy),最后按下p 键粘贴
-
退出可视模式按下Esc