跳转到内容

学习 vi 编辑器/高级任务

来自维基教科书,开放的书籍,为开放的世界

学习 vi 编辑器: 熟悉基本任务让您的工作更轻松高级任务细节Vi 克隆 (Vim基本导航模式提示和技巧程序员需要了解的有用信息增强 VimVim 在 Windows 上VimL 脚本语言, Vile, BB vi)vi 参考

复制和粘贴

[编辑 | 编辑源代码]

复制和粘贴任务使用三个键完成,<y>(代表“yank”),<d>(代表“delete”)和<p>(代表“paste”)。 通常,您键入<y><d>告诉 vi 您要开始 yank 或删除文本的位置。 然后您需要使用光标移动或其他命令告诉 vi 在哪里停止。

您也可以简单地使用键<v>进入可视模式。 然后您可以通过移动光标键来突出显示文本。 最后按<y>将文本复制到剪贴板。 然后按<p>粘贴。

一个单词

[编辑 | 编辑源代码]

要删除单个单词,将光标移到第一个字母,然后键入<d><w>。 要 yank 单个单词,将光标移到第一个字母,然后键入<y><w>

其他方法

[编辑 | 编辑源代码]

移到最后一个字母后面的字符,然后键入<d> <b>

要删除像“can't”这样的带有撇号的单词,移到第一个字符,然后键入<d><W>。 注意大写 W。 这告诉 vi 一直移到单词后面的第一个空格字符。

同样,试试 dB。

要删除单个行,键入<d><d>

其他数量

[编辑 | 编辑源代码]

vi 的一大优势是它允许您选择大量文本,而无需将手移到鼠标上。

键入<m><a>。 这将标记光标所在的位置为标记a。 从现在开始,您可以随时键入<`><a>返回此位置。 (`a 表示“移动到标记为a的字符”)

现在移到其他位置。 键入<d><`><a>。 这将删除从当前位置到标记为a的位置的所有内容。

请注意,您可以使用几乎任何键代替此示例中使用的<a>。 例如,您可以使用<m><t>标记一段的顶部,或<m><b>标记一段的底部。 这些助记符仅存在于用户脑海中——vi 不在乎t代表顶部b代表底部。 Vi 将记住所有唯一的书签,允许用户轻松快捷地在它们之间跳转。 一些用户发现使用<m><m>作为临时书签很方便,因为它可以非常快地键入。

到一行结尾或开头

[编辑 | 编辑源代码]

<d><$><d><^>

到文件结尾或开头

[编辑 | 编辑源代码]

<d><G><d><1><G>

到下一个模式出现的位置

[编辑 | 编辑源代码]

<d>/myPattern

这在使用 d/< 编辑 HTML 文件时特别有用。

调整屏幕

[编辑 | 编辑源代码]

vi 作为一款可视化的屏幕定向编辑器,提供了一些有用的命令来重新绘制或调整屏幕,以防您发现自己身处不想去的地方。

如果您在 Unix shell 中运行,某些后台进程可能会写入同一个终端。 这会扰乱 vi 的屏幕布局。 为了强制 vi 重新绘制整个屏幕,请按<Ctrl-L><Ctrl-R>。 这两个命令执行相同的操作。

如果您想调整当前显示的内容,那么<z>命令相当有用。 它就像瑞士军刀一样,具有相当复杂的语法。

   [/pattern/][m]z[n](<CR>|.|-)

([ ... ] 表示可选项目,(...|...) 表示替代方案)

在详细解释语法之前,这里是一些该命令的常见应用。

滚动屏幕,使当前行成为屏幕中间的行。 光标停留在该行上。

   <z><.>

滚动屏幕,使当前行成为屏幕顶部的行。

   <z><CR>

滚动屏幕,使当前行成为屏幕底部的行。

   <z><->

如果给定/pattern/ 或数字 m,则在调整后光标将进一步移动。/pattern/ 表示将光标移动到该模式的第一个匹配项。m 表示将光标移动到屏幕上的第 m 行。例如,

   /while/z<CR>

首先滚动屏幕,使当前行成为屏幕顶部的行,然后将光标从该位置开始移动到文本中的第一个 "while"。

数字 n 是一个比较晦涩的参数。如果提供,它告诉 vi 行为就像屏幕只有 n 行高一样。结果是,只调整 n 行,而屏幕上的其他行会被忽略或清除,这在速度较慢的终端上可能有用,可以避免不必要的屏幕重绘。


学习 vi 编辑器: 熟悉基本任务让您的工作更轻松高级任务细节Vi 克隆 (Vim基本导航模式提示和技巧程序员需要了解的有用信息增强 VimVim 在 Windows 上VimL 脚本语言, Vile, BB vi)vi 参考

华夏公益教科书