- vi的三种编辑模式
- 命令模式(Command mode)
在此模式下可以控制光标的移动,可以删除字符,删除行,还可以对某个段落进行复制和移动
- 输入模式(Insert mode)
只有在此模式下,可以输入字符
- 末行模式(Last line mode)
在此模式下可以将文件保存或退出Vi,还可以设置编辑器环境,还可以查找字符串,列出行号
备注:不过一般把vi看成两个两个模式,将末行模式也算入命令行模式
- Vi 初体验
在终端键入vi file.txt
#vi file.txt
如果不熟悉的人肯定是会直接开始,敲打键盘进行输入,发现没有效果,就开始干着急。。其实当你输入上面的命令时,此时是处于命令模式的。要先切换到输入模式才可以进行输入,只需要按下字母"i"进行,让后你就可以输入了,要切换到命令模式,只需按"ESC"键。
保存文件
在命令行模式下,按一下":"键进入末行模式,如:
:w filename(以filename为文件名保存文件)
:wq (存盘并推出vi)
:q!(不存盘强制退出vi)
- 命令模式功能键
- 切换到输入模式
按"i"进入输入模式后是从当前位置开始输入文件
按"a"进入输入模式后,是从目前光标所在位置的下一个位置开始输入文字
按"o"进入输入模式后,是插入新的一行,从行首开始输入文字
- 从输入模式切换为命令模式
按"ESC"键
- 移动光标
vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写字母h,j,k,l分别控制光标的左、下、上、右移一格
按"ctrl" + "b":屏幕往"后"移动一页
按"ctrl" + "f":屏幕往"前"移动一页
按"ctrl" + "u":屏幕往"后"移动半页
按"ctrl" + "d":屏幕往"前"移动半页
按数字0:移动到文章的开头
按G:移动到文章的最后
按$:移动到光标所在行的行尾
按^:移动到光标所在行的行首
按#l:光标移到到该行的第#个位置,如5l
- 删除文字
按x:每按一次,删除光标所在位置的"后面"一个字符
按#x:如6x表示删除光标所在位置的后面6个字符
按X:大写的X,每按一次删除光标所在位置的前面一个字符
按#X:删除光标前面的#个字符
按dd:删除光标所在行
按#dd:从光标所在行开始删除#行
- 复制
按yw:将光标所在之处到字尾的字符复制到缓冲区中
按#yw:复制#个字到缓存区
按yy:复制光标所在行到缓冲区
按#yy:从光标所在的行起,往下数#行复制到缓冲区
按p:将缓冲区的字符粘帖到光标所在位置,所有与"y"有关的命令,都必须与"p"配合才能完成复制与粘帖功能
- 替换
按r:替换光标所在处的字符
按R:替换光标所在处的字符,知道按下ESC键为止
- 撤销上一次操作
按u:如果您误执行一个命令,可以马上按下"u",回到上一个操作。 按多次"u"可以执行多次。
- 更改
按"cw":更改光标所在处的字到字尾处
按"c#w":例如,「c3w」表示更改3个字
- 跳至指定的行
按ctrl+g列出光标所在行的行号。
按 #G:例如,「15G」,表示移动光标至文章的第 15行行首。
末行模式简介
在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于 「command mode」下后,再按「:」冒号即可迚入「last line mode」。
- 列出行号
「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。
- 跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳 到该行了,如输入数字 15,再回车,就会跳到文章的第 15行。
- 查找字符
「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键 字丌是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键 字丌是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。
- 保存文件
「w」:在冒号输入字母「w」就可以将文件保存起来。
- 离开vi
「q」:按「q」就是退出,如果无法离开 vi,可以在「q」后跟一个「!」强 制离开vi。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以 保存文件。