vi有三种模式:
命令模式:键盘的任意输入都当成“编辑命令”;
输入模式:键盘的任意输入都当成文本内容;
末行模式:键盘的任意输入都当成“文本管理命令”
命令模式(刚打开)==》(i,a,o)输入模式(反向Esc)
命令模式==》(shift+:)末行(反向Esc*2)
末行模式:
set nu :显示行号
wq/x :保存退出;q!:不保存退出
命令模式:
ZZ(大写):保存退出
i/a :光标前/后一个字符;
I/A:行首/尾;
O/o:上/下一行输入;==》Esc快捷退到命令模式
命令模式下光标的移动:
kjhl :上下左右;
0(数字零) :行首(绝对);
shift+6(^) :首(一行的第一个字符)
shift+4($) :尾(一行的最后一个字符)
gg/G :文件的头/尾
10G :10行
w :下一个单词
修改vi/vim的配置:vim ~/.vimrc(.virc) ==》都需要先创建这两个文件 当前用户的配置文件 set nu设置显示行号;set ts=4设置tab键为四个空格;set sw=4左右移动4格
vim /etc/vimrc 修改所有用户的配置
删除命令:
x:光标字母;d0(零):一行中光标前的所有;dw:整个单词;2(n)x:光标字符开始及后面的,共计2(n)个字符;dd:删除整行;d:删除选中的;2(n)dd:删除当前行及后面的共计2(n)行
撤销:u;反撤销:ctrl+r
重复上一次命令:.
>/<:相当于tab/shift+tab;==》命令模式下按v(获得焦点),然后用hjkl选择更多的内容
yy:复制光标行;y:复制选中的;p:粘贴;2(n)yy:原理同上面的dd;yw:复制单词
末行模式下:
14,18y:复制14到18行;
.,18y:复制光标行到18行;
.,$y:复制光标行到最后一行
命令模式:
/keywords:查找keywords ==》n下一个,N上一个
末行模式下:
%s/after/before/gi: after替换成before,g表示全局,i忽略大小写,gi可以省略;
!:执行任何命令,不会退出vim
查看文本:cat(小文件)、more(重要,空格==》下一版,q==》退出)、less(类似more)、tail(重要,ctrl+c结束,tail -20==》尾部20行,默认是10行)、head(头部10行,head -20)
find pass*:当前目录下查找以pass开头的文件;
find /etc/pass*:在etc下查找
grep 'root' /etc/passwd :查找passwd里是否包含'root'内容
'^root' :以root单词为行首的
‘bash$’:以bash结尾的
管道(|):head -9 /etc/profile | tail -1==>在管道左边的结果里执行管道右边的命令(左边传给右边)