vi编辑器是所有Unix及Linux系统下标准的编辑器
vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
命令模式:
控制屏幕光标的移动,字符、字和行的删除,移动复制某区段及进入insert mode或者last line mode
插入模式:
只有在insert mode下才可以输入文字,按esc返回命令行模式
底行模式:
文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号...等
命令模式下的功能键
插入模式
按‘i’进入插入模式,从光标当前位置开始进行输入
按‘o’进入插入模式,在光标的下面插入一行,并从行首开始输入
按‘a’进入插入模式,从目前光标所在位置的下一个位置开始输入文字
退出插入模式
按esc键即退出插入模式
移动光标
命令模式下可通过[h]、[j]、[k]、[l]分别控制光标的左、下、上、右移动一格
按[ctrl]+[b]:屏幕往‘后’移动一页
按[ctrl]+[f]:屏幕往‘前’移动一页
按[ctrl]+[u]:屏幕往‘后’移动半页
按[ctrl]+[d]:屏幕往‘前’移动半页
按[shift]+[g]:移到文件最后
连按两下[g]:回到文件开头
按[$]:将光标移到行尾
按[^]:将光标移到行首
按[w]:光标跳到下个单词的开头
按[e]:光标跳到下个单词的结尾
按[b]:光标回到上个单词的开头
按[#l]:光标移到该行第#个位置,例如:5l,16l
按[#G]:移动光标到文件第#行行首
删除文字
[x]:每按一次x,则删除光标后的一个字符
[#x]:删除光标后的#个字符,例如:6x,删除光标后面的6个字符
[X]:每按一次X,则删除光标前的一个字符
[#X]:删除光标前的#个字符,例如:3X,删除光标前面的3个字符
[dd]:删除光标所在行
[#dd]:删除光标所在行下的#行(含光标所在行)
复制
[yw]:将光标所在之处到字尾的字符复制到缓冲区中。
[#yw]:复制#个字到缓冲区
[yy]:复制光标所在行到缓冲区。
[#yy]:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
[p]:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。
底行模式
在命令行模式下,先按下ESC确保是命令行模式,再按下冒号‘:’即进入底行模式
列出行号
[set nu]:底行模式下输入‘set nu’回车,即会在文件的每一行前面出现行号
跳到文件的某行
[数字]:底行模式输入‘数字’回车,光标即会跳至该行
查找字符
[/]:底行模式先按[/]键,再输入你想要查找字符,回车,默认会从查找前光标所在位置向下循环查找,光标会跳到第一次出现的字符前,继续按‘n’可查找下一个字符出现位置,按‘shift+n’反向查找上一个字符出现的位置。
[?]:底行模式先按[?]键,再输入你想要查找字符,回车,默认会从查找前光标所在位置向上循环查找,光标会跳到第一次出现的字符前,继续按‘n’可查找上一个字符出现位置,按‘shift+n’反向查找下一个字符出现的位置。
文件保存退出
[q]:文件未更改变化时,直接退出,否错报错
[q!]:直接强制退出,不保存文件的修改
[qw]:保存文件的修改并退出
[w]:保存文件修改不退出
[w filename]:以filename为文件名新生成一个文件并保存内容。当前编辑仍在旧文件中。