VI命令的总结

最后更新于:2022-04-01 04:32:10

以下是按照功能分类的VI命令的一个总结列表。有可能还会有其它命令,可以查看VI的在线手册。为了方便,你可以以文本文件方式保存该文件,然后删除你认为自己不会用的一些命令,并打印出剩下的较短的文件。 剪切与粘贴/删除文字 * “:指定一个任何命令使用的缓存。在”之后输入一个字母或数字,它们会对应一个缓存。 * D:从当前光标所在位置向后删除直到行尾。 * P:在当前光标位置或行之前粘贴专门的缓存。如果没有指定缓存(使用”命名),“P”就使用通用缓存。 * X:删除光标之前的字符。 * Y:将当前行整形到指定的缓存。如果没有指定缓存,就使用通用缓存。 * d:删除,直到where。“dd”删除当前行。一个数字就表示删除那么多行。被删除的内容放置在由”命令指定的缓存中。如果没有指定缓存,就使用通用缓存。 * p:在当前光标位置或行之后粘贴专门的缓存。如果没有指定缓存(使用”命名),“p”就使用通用缓存。 * x:删除光标之下的字符。输入一个数字表示要删除多少字符。被删除的字符位于光标之后。 * y:整形,将结果放到一个缓存中。“yy”整形当前行。输入一个数字表示要整形的行数。可以用”命令来指定缓存。如果没有指定缓存,就使用通用缓存。 插入新的文字 * A:在当前行之后追加。 * I:在一行的开头处插入。 * O:在当前光标位置的上面一个新行进入插入模式。 * a:进入插入模式,输入的字符会在当前光标位置之后插入。如果在命令之前输入一个数字,那么会插入内容多次。 * i:进入插入模式,输入的字符会在当前光标位置之前插入。如果在命令之前输入一个数字,那么会插入内容多次。 * o:在当前光标位置之下的一个新行进入插入模式。 在文件内移动光标 * ^B:向后回滚一页。输入数字就会回滚那么多页。 * ^D:向前滚动半个窗口。输入数字会滚动那么多行。 * ^F:向前滚动一页。输入数字会滚动那么多页。 * ^H:将光标向左移动一个空格。输入数字会移动那么多个空格。 * ^J:在同一列向下移动光标一行。输入数字会向下移动那么多行。 * ^M:移动到下一行的第一个字符处。 * ^N:在同一列向下移动光标一行。输入数字会向下移动那么多行。 * ^P:在同一列向上移动光标一行。输入数字会向上移动那么多行。 * ^U:向后回滚半个窗口。输入数字会回滚那么多行。 * $:将光标移动到当前行的末尾。输入数字会移动到下面行的末尾。 * %:将光标移动到匹配的括号处。 * ^:将光标移动到第一个非空白的字符处。 * (:将光标移动到一个句子的开头。 * ):将光标移动到下一个句子的开头。 * {:将光标移动到前一个段落。 * }:将光标移动到下一个段落。 * |:将光标移动到指定的列(由count指定)。 * +:将光标移动到下一行的第一个非空白字符处。 * -:将光标移动到之前一行的第一个非空白字符处。 * _:将光标移动到当前行的第一个非空白字符处。 * 0:将光标移动到当前行的第一列。 * B:将光标回移一个字,跳过punctuation。 * E:将光标向前移动到一个字的结尾,跳过punctuation。 * G:跳到由count指定的行处。如果没有指定数目,就跳转到文件的末尾。 * H:将光标移动到屏幕顶端的第一个非空白字符处。 * L:将光标移动到屏幕底端的第一个非空白字符处。 * M:将光标移动到屏幕中间的第一个非空白字符处。 * W:将光标向前移动到一个字的开头,跳过punctuation。 * b:将光标回移一个字。如果光标在字的中间,就将光标移动到那个字的第一个字符处。 * e:将光标前移一个字。如果光标在字的中间,就将光标移动到那个字的最后一个字符处。 * h:将光标向左移动一个字符的位置。 * j:将光标向下移动一行。 * k:将光标向上移动一行。 * l:将光标向右移动一个字符的位置。 * w:将光标向前移动一个字。如果光标在字的中间,就将光标移动到下一个字的第一个字符处。 在屏幕上移动光标 * ^E:向前滚动一行。用count指定滚动的行数。 * ^Y:向后滚动一行。用count指定滚动的行数。 * z:用以下选项重画屏幕。“z”将当前行放到屏幕的顶部;“z.”将当前行放到屏幕的中间;“z-”将当前行放到屏幕的底部。如果你在“z”命令之前指定一个数字,它就将当前行变到指定的行处。例如,“16z.”将第16行放到屏幕的中间。 替换文字 * C:从当前光标位置处变到行的结尾。 * R:用输入的一系列字符(以Esc键结尾)替换屏幕上的字符。S:改变一整行。 * c:改变直到。“cc”改变当前行。用count指定改变的行数。 * r:替换光标下的一个字符。用count指定替换的字符数。 * s:替换(Substitute)光标下的一个字符,并进入插入模式。用count指定替换的字符数。在最后一个替换的字符处放一个美元($)符号。 搜索文字或字符 * ,:在相反方向上重复上一个f,F,t或T命令。 * /:在文件里向下搜索/之后的字符串。 * ;:重复上一个f,F,t或T命令。 * :在文件里向上搜索之后的字符串。 * F:在当前行向后搜索“F”命令指定的字符。如果找到了,就将光标移动到那个位置。 * N:重复由“/”或“”给出的搜索,不往相反方向搜索。 * T:在当前行向后搜索“F”命令指定的字符。如果找到了,就移动到那一列。 * f:在当前行搜索“f”命令之后指定的字符。如果找到了,就将光标移动到那个位置。 * n:重复上一个“/”或“”搜索。 * t:在当前行搜索“t”命令之后指定的字符。如果找到了,就将光标移动到那个字符位置之前的一列。 操纵字符/行格式 * ~:转换光标之下的字符事例(Switch the case of thecharacter under the cursor)。 * <:Shift the lines up towhere to the left by one shiftwidth. “<<” shifts the currentline to the left,and can be specified with a count。 * >:Shift the lines up towhere to the right by one shiftwidth. “>>” shifts the currentline to theright, and can be specified with a count。 * J:将当前行和下一行合并起来。用count指定合并的行数。 保存与退出 * ^\:退出“VI”模式,进入“EX”模式。EX编辑器是行编辑器,VI就是建立在其上的。重新进入VI的EX命令是“:vi”。 * Q:退出“VI”模式,进入“EX”模式。ex编辑器是一个逐行(line-by-line)编辑器。重新进入VI的EX命令是“:vi”。 * ZZ:退出编辑器,如果有任何改动就保存。 其它一些指令 * ^G:显示当前的文件名和状态。 * ^L:清除并重画屏幕。 * ^R:重画屏幕并移除假的行。 * ^[:退出键。取消部分形成的命令。 * ^^:回到上次编辑的文件处。 * !:执行一个shell。如果指定了a,使用!执行的程序将特定的行作为标准输入,同时也会替换带执行程序的标准输出的那些行。“!!”将当前行作为输入来执行一个程序。例如,“!4jsort”会从当前光标位置拿掉五行并执行sort。在键入命令之后,会有一个你可以输入命令的单独的exclamation点。 * &:重复之前的“:s”命令。 * .:重复最后一次修改文件的那个命令。 * ::开始输入一个EX编辑器命令。当用户输入回车的时候,此命令马上执行。 * @:输入在特定缓存中存储的命令。 * U:将当前行恢复到光标进入行之前的状态。 * m:用“m”命令之后的特定字符来标记当前位置。 * u:撤销对文件所作的最后一次修改。再次输入“u”会恢复修改。
';