vi 常用操作
牛逼的博客: vim常用命令总结
https://www.cnblogs.com/yangjig/p/6014198.html
1. vi三种模式
1.1 命令模式
用户刚刚启动vi/vim,便进入了命令模式。
1.2 输入模式
进入命令模式后,按 i/a/o/s/r 等会进入切换到输入模式,以输入字符;
i/a/o/s/r 分别表示:
输入/添加/另起新行/删除/替换光标所在字符
1.3 末行模式
输入模式下,输入冒号:切换到底线命令/末行模式
进入末行模式后,分别输入一下字符表示不同含义:
:q //quit退出vi编辑器
:w //write保存修改的内容
:wq //保存并退出
:q! //强制退出,当对文本内容作了修改而不想要保存时
:w! //强制保存,当没有文本的写权限时
2. 跳转
在命令模式下,输入一下字符,分别跳转到常用的行首/尾灯处
gg/G/shirt+g 跳到第一行/最后一行
0/shirt+4 一行开始字符/最后一个字符
:n //跳转到第n行
输入:n,代表跳转到第n行,如:79,就跳转到第79行。
3. 拷贝,剪切,复制
在命令模式下,拷贝命令:
dd 剪切游标所在行整行 然后p 粘贴
yy 命令:复制光标所在的整行 (注意大小写)
复制此行和以下2行的内容,输入3yy
Y 或 y$ 命令:两命令功能一样,都是复制从光标所在行 行首到行尾的内容。
p 命令:粘贴命令,粘贴当前缓冲区中的内容。
- 常用剪切命令:
dd 剪切游标所在行整行
d^ 剪切至行首,或d0
d$ 剪切至行尾
dw 剪切一个word
dG 剪切至文件尾 - 多行复制 在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行;其中n为1、2、3……
粘贴: 在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴
移动下光标
4. 删除
命令模式下,删除命令:
删除单行 dd 1d
删除多行: :1,4d 删除1-4行
: 4,$d 删除4-末尾行
查找关键字删除: 删除文档中含有wxp的所有行 :g/wxp/d
删除空白行: :g/^$/d\
:%s/^\n/s//g
删除多行空白行,保留一行 :%s/^\n$//g
删除全文: :g/.*/d
dw 删除光标之后的单词剩余部分。
d$ 删除光标之后的该行剩余部分。
dd 删除当前行。
5. 撤销/重复
点号(.) 重复上次操作
u 撤销上次操作
6.替换
如修改 /etc/yum.repos.d/CentOS-Base.repo
:%s/#baseurl/baseurl
其他:
:s/old/new //替换当前行第一个old为new
:s/old/new/g //整行相应内容替换
:%s/old/new<==>:1,$s/word1/word2/g //整个文本相应内容替换
:n1,n2s/word1/word2/gc //:100,200s/word1/word2/g 把100行到200行之间的word1替换为word2,并提示是否替换 c->confirm
7. 查找
:/内容/ 或 /内容 //查找指定内容
查找时候字符n/N分别表示将光标移动到下一个目标和上一个目标
8. 设置行号
:set number 或 :set nu //显示行号
:set nonumber 或 :set nonu //取消显示行号
输入:n,代表跳转到第n行,如:79,就跳转到第79行。