vim操作
输入模式
a | 当前字符后输入 |
---|---|
A | 当前行行尾输入 |
i | 当前字符前输入 |
I | 当前行行首输入 |
o | 当前行下一行输入 |
O | 当前行上一行输入 |
Home | 行首 |
End | 行尾 |
yy | 复制 |
dd | 剪切/删除 |
50yy | 复制50行 |
50dd | 剪切/删除50行 |
p | 粘贴到下一行 |
P | 粘贴到上一行 |
^ | 行首 |
$ | 行尾 |
y^ | 复制当前字符到行首 |
y$ | 复制当前字符到行尾 |
d^ | 删除当前字符到行首 |
d$ | 删除当前字符到行尾 |
定位行
20G | 定位到20行 |
---|---|
gg | 首行 |
G | 尾行 |
dgg | 剪切/删除当前行到首行 |
dG | 剪切/删除当前行到尾行 |
ygg | 复制当前行到首行 |
YG | 复制当前行到尾行 |
末行模式
shift :
:w 保存
:q 退出
:wq 保存退出
:X 添加密码
:w /tmp/aa.txt 另存为/tmp/目录下aa.txt
:3,5w /tmp/tt.txt 另存3-5行
:e /root/test.txt 打开文件
:e! 重新打开文件
:set nu 显示行号
查找
:/ n 下一个 N 上一个
:? n 上一个 N 下一个
替换
:s/ab/XX/ | 替换当前行,第一个匹配字段 |
---|---|
:%s/ab/XX/g | %所有行 s:switch g:global |
:2,5s/ab/XX/g | 替换2-5行 |
:%s/ //g | 删除所有的空格 |
:%s^ *//g | ^ * 是正则表达式模式,匹配行首的任意数量的空格字符,删除行首的所有空格 |
:%s/\t//g | 删除所有的tab空格 |
:3d | 删除3行 |
:1,5d | 删除1-5行 |
:g/^$/d | 删除空行,/^$/匹配空行 |
:g/^s*$/d | 删除空白(空格、tab、空行) |
功能选项:
:set nu | 显示行号 |
---|---|
:set nonu | 取消显示行号 |
:set autoindent | 设置自动缩进 |
:set noautoindent | 取消自动缩进 |
:set ignorecase | 设置忽视大小写 |
:set noignorecase | 取消忽视大小写 |
:set list | 设置显示空格类型(空格、tab) |
:set nolist | 取消显示空格类型 |
:set tabstop=32 | 设置tab的长度(默认8) |
多文件操作
[root@localhost ~]# vimdiff aa.txt cc.txt tt.txt
:next 下一个
:prev 上一个
:first 第一个
:last 最后一个
Ctrl + ^ 切换
[root@localhost ~]# vim -O aa.txt cc.txt tt.txt 横屏排列 [root@localhost ~]# vim -o aa.txt cc.txt tt.txt 竖屏排列
1.列举vim的三种常用模式
插入模式 末行模式 可视化模式
2.由命令模式进入输入模式时a i o O 分别代表什么意思?
a:当前字符后输入
i:当前字符前输入
o:当前行下一行输入
O:当前行上一行输入
3.在命令模式下如何复制100行 如何删除50行 如何粘贴?
复制100行:100yy
删除50行:50dd
粘贴:dd y
4.在命令模式下如何定位到第75行
75G
5.在命令模式下如何删除当前行到首行,如何删除当前行到尾行?
d^ d$
6.末行模式如何保存? 如何强制保存退出?
:wq :q!
7.末行模式下如何将100-200行另存一个新文件?
100,200w 文件路径
8.末行模式下如何开启行号?如何开启忽略大小写设置?
set nu
set ingorecase
9.vim的配置文件是哪个文件?
/etc/vimrc
10.vim如何查找在一个文件中查找abc字段?
/abc
11.在vim中如何同屏内查看多个文件?
vim 文件1 文件2......