vi的命令
jb51.net
p 后放置命令。在当前光标位置之后放置或粘贴缓冲器的内容。对于复制行命令,缓冲器的内容将被粘贴在当前行之后。对于复制字符行命令,缓冲器内容将被粘贴在光标的右边。
P 前放置命令。在当前光标位置之前放置或粘贴缓冲器的内容。对于复制行命令,缓冲器的内容将被粘贴在当前行之前。对于复制字符行命令,缓冲器内容将被粘贴在光标的左边。
使用复制和放置指令时,你也可以字符指令而使用多个缓冲器或剪切板。这些字符可为a-z,并且只能是小写字母。例如,ayy将当前行内容复制到缓冲器A,ap命令将缓冲器的内容粘贴在当前行之前。
Vi中最为重要的命令要算undo指令。这一命令十分简单:只需要按下u。按下u键就可以撤消最近使用的一次指令。 与undo命令类似的是redo命令。按下句号键(.)将会重新键入最近的指令。例如,如果你使用cw来改变一个文字,你可以查找这一文字然后使用句号.来这一文字。
其它两个重要的命令为search命令。为了在文档中向前查找,可键入/text,text即为你查找的内容。重要的是一定注意,只有输入内容完全的匹配,你才可以查找到。Vi不支持混合查询或者模糊查询。对于向后查找,可键入?text,text即为查找的内容。
编辑指令
在指令模式中,很多组命令都可以前缀:。与以上提及的命令不一样,一旦输入一个冒号,所有指令都出现在屏幕的左下角,并可以在执行之前编辑。以下是常用的重要的:指令。 :w 编写文件命令。如果你输入:w然后回车,当前文件将被写入硬盘。如果使用的是一个空白文档,将会出现“没有当前的文件名”的消息。可以使用:w文件名将一个空白文档或当前文档写入到另一文件。
:w!或:w文件名 覆盖文件命令。如果输入:w!然后回车,文件将会被当前新输入的名称而覆盖。这可用于文件的覆盖。
:q 退出命令。如果正常保持,输入:q将会终止整个操作。
:q! 退出而不需要保持命令。在不需要保存文件的情况下退出。
:%s/find_text/replace_text/
查询与替代命令
正如上面提及一样,可以改变查询命令为一个查询与替代命令。使用:%s命令可以告诉vi查询文档中所有行。/find_text命令与以上的查询命令类似,当其后缀/replace_text/,时,/find_text操作结果的第一行将会被替代。为了将/find_text所有内容被替代,可以增加一个g(全局),比如:%s/find_text/replace_text/g。
你不要只使用单一的指令。你可以将多个指令结合使用。例如,:wq!将会保存文件到硬盘并退出vi而返回到指令状态。 Vi=包含全部(Very involved) 以上提及的内容只是vi功能的一小部分。你可以一起执行指令串,以标记方式复制而粘贴文本,或者使用sed指令。你还可以将shell script的输出或其它指令插入到你的文档中。 以上涉及到的例子和指令将可以带你进入vi的大门。很多vi使用者在操作时都会记住一些命令。从其它使用vi的人可以学会更多的vi指令,而此时你或许惊叹vi的强大。然而,你应该记住一点:经常地使用:a指令,因为vi没有提供自动后台文档保存功能。