Vi/Vim 的强大之处在于其独特的模式编辑理念,主要包括以下三种模式:
普通模式(Normal Mode):这是 Vi/Vim 启动后的默认模式,在该模式下,几乎每个按键都对应一个命令,用于移动光标、删除文本、复制粘贴、撤销操作等。
插入模式(Insert Mode):若想在文件中输入文本,就需要进入插入模式。在普通模式下,按下 “i” 键(在光标前插入)、“a” 键(在光标后插入)、“o” 键(在当前行下方插入新行)或 “O” 键(在当前行上方插入新行),即可进入插入模式。此时,屏幕底部会显示 “-- INSERT --” 提示信息。完成文本输入后,按下 “Esc” 键,即可返回普通模式。
命令行模式(Command-Line Mode):在普通模式下,按下 “:” 键,即可进入命令行模式。此模式用于执行诸如保存文件、退出编辑器、查找替换文本、设置编辑器选项等高级命令。命令执行完毕后,会自动返回普通模式。
命令模式按键说明:
【w】光标跳到下个字的开头
【e】光标跳到下个字的字尾
【H】 光标移动到这个屏幕的最上方那一行的第一个字符
【M】 光标移动到这个屏幕的中间那一行的第一个字符
【L】光标移动到这个屏幕的最下方那一行的第一个字符
【G】 移动到这个文件的最后一行
【nG】移动到这个文件的第n行(可配合:set nu)
【gg】 移动到这个文件的第一行,相当于1G
【n 】光标向下移动n行
查找与替换
【/word】 向光标向下寻找一个名称为word的字符串
【?word】 向光标向上寻找一个名称为word的字符串
【n】 代表重复前一个查找的动作
【N】 与n刚好相反,为【反向】进行行前一个查找动作
【:n1,n2s/word1/word2/g】 n1与n2为数字,在第n1与n2行之间查找word1 这个字符串,并将该字符串替换为word2
【:1,$s/word1/word2/g】 从第一行到最后一行查找word1字符串,并将该字符串替换为word2
【:1,$s/word1/word2/gc】 从第一行到最后一行查找word1字符串,并将该字符串替换为word2 ,且在替换前提示用户确认是否进行替换
删除、复制与粘贴
【x】 为向后删除一个字符 (相当于【del】键)
【X】 为向前删除一个字符(相当于【backspace】键)
【nx】 连续向后删除n个字符
【dd】 删除光标所在行
【ndd】 删除光标所在的向下n行
【d1G】 删除光标所在行到第一行的所有数据
【dG】 删除光标所在到最后一行的所有数据
【d$】 删除光标所在处,到该行的最后一个字符
【d0】 删除光标所在处,到该行的最前一个字符
【yy】 复制光标所在的那一行
【nyy】 复制光标所在的向下n列
【y1G】 复制光标所在行到第一行的所有数据
【yG】 复制光标所在行到最后一行的所有数据
【y0】 复制光标所在的那个字符到该行行首的所有数据
【y$】 复制光标所在的那个字符到该行行尾的所有数据
【p】将已复制的数据在光标下一行粘贴上
【P】 则为贴在光标的上一行
【a, A】 进入编辑模式(Insert mode):
【o, O】 进入编辑模式
【Esc】 退出编辑模式,回到命令模式
底线命令行模式按键解释
【:w】 保存编辑的内容
【:w!】强制写入该文件,但跟你对该文件的权限有关
【:q】 离开vi
【:q!】 不想保存修改强制离开
【:wq】 保存后离开
【:x】 保存后离开
【ZZ】 若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开