vi/vim
模式命令模式 编辑模式 末行模式
快捷键home键 行首 end键 行尾
命令模式切换到编辑模式a 当前字符后输入
A 当前行行尾输入
i 当前字符前输入
I 当前行行首输入
o 当前行下一行输入
O 当前行上一行输入
s 删除当前字符后输入
S 删除当前行后输入
u 撤销一步操作 ctrl+r 重做yy 复制 p 粘贴(当前行下一行) P(当前行上一行)
100yy 复制100行
dd 剪切/删除
100dd 删除100行
^ 行首
$ 行尾
y^ 复制当前字符到行首(不包含当前字符)
d^ 删除当前字符到行首
y$ 复制当前字符到行尾 (包含当前字符)
d$ 删除当前字符到行尾
G 最后一行
gg 第一行
53G
ygg 复制当前行到首行
dgg 删除当前行到首行
yG 复制当前行到尾行
dG 删除当前行到尾行
末行模式 (shift+:)
:w 保存
:w! 强制保存
:wq 保存并退出
:wq! 强制保存并退出
:q 退出
:q! 强制退出
:e /root/aa.txt 关闭当前编辑的文件,并开启新的文件。如果对当前文件的修改未保存,vi会警告
:w /tmp/xx.txt 保存为
:2,5w /tmp/yy.txt 保存第2到第5行
:e! 重新打开当前文件
功能设置
:set nu 显示行号
:set nonu 不显示行号
:set list 显示制表符
:set nolist 不显示制表符
制表符默认 8个空格
:set tabstop=16 全文件 制表符=16个空格长度
:set softtabstop=16 已有行制表符长度不变 新的行长度=16
:set autoindent 设置自动缩进
:set noautoindent
设置永久生效配置文件: /etc/vimrc
/查找
/ab n 下一个 N 上一个
?a
n 换行符 s 空白行 t 制表符
:g/^t*$/d 删除只有制表符的行
:g/^ *$/d 删除只有空格的行
可视化模式v
选中
y 复制 d删除
可视化块模式ctrl + v
选中
y复制 d删除
多行输入ctrl+v ---> 选中注释列--->shift+i---->输入#---->ESC(两次) 多文件处理[root@localhost ~]# vim aa.txt cc.txt tt.txt
:next 下一个文件
:prev 上一个
:first 第一个
:last 最后一个
ctrl+^ 两个文件之间切换(当前和 上次打开的)
多窗口
[root@localhost ~]# vimdiff aa.txt cc.txt tt.txt
ctrl+ w w 切换文件
退出 wqa qa!
[root@localhost ~]# vim -O aa.txt cc.txt tt.txt 横向多窗口打开两个文件
[root@localhost ~]# vim -o aa.txt cc.txt tt.txt 纵向多窗口打开两个文件
加密末行模式 X 保存退出
:set key = 保存退出去除密码



