Vim 可视模式入门

可视模式使在 Vim 中高亮和操作文本变得更容易。
212 位读者喜欢这篇文章。
Programming at a browser, orange hands

opensource.com

Ansible playbook 文件是以 YAML 格式编写的文本文件。经常使用它们的人有自己喜欢的编辑器和插件扩展来简化格式设置。

当我在大多数 Linux 发行版提供的默认编辑器中教授 Ansible 时,我经常使用 Vim 的可视模式。它允许我在屏幕上高亮我的操作——我将要编辑的内容以及我正在进行的文本操作任务——以便我的学生更容易学习。

Vim 的可视模式

当使用 Vim 编辑文本时,可视模式对于识别要操作的文本块非常有用。

Vim 的可视模式有三个版本:字符、行和块。进入每种模式的按键是

  • 字符模式:v (小写)
  • 行 模式:V (大写)
  • 块模式:Ctrl+v

以下是一些使用每种模式来简化工作的方法。

字符模式

字符模式可以高亮段落中的句子或句子中的短语。然后,可以删除、复制、更改或使用任何其他 Vim 编辑命令修改视觉上识别的文本。

移动句子

要将句子从一个地方移动到另一个地方,首先打开文件并将光标移动到要移动的句子中的第一个字符。

Highlighted sentence in character visual mode
  • v 键进入可视字符模式。单词 VISUAL 将出现在屏幕底部。
  • 使用箭头键高亮所需的文本。您可以使用其他导航命令,例如 w 高亮到下一个单词的开头,或 $ 包括行的其余部分。
  • 文本高亮后,按 d 键删除文本。
  • 如果您删除的太多或不够,请按 u 撤消并重新开始。
  • 将光标移动到新位置,然后按 p 粘贴文本。

更改短语

您还可以高亮要替换的文本块。

Phrase highlighted to change in visual character mode
  • 将光标放在要更改的第一个字符处。
  • v 进入可视字符模式。
  • 使用导航命令(例如箭头键)高亮短语。
  • c 更改高亮的文本。
  • 高亮的文本将消失,您将进入插入模式,您可以在其中添加新文本。
  • 输入新文本后,按 Esc 返回命令模式并保存您的工作。

Changed text in visual mode

行模式

当使用 Ansible playbook 时,任务的顺序可能很重要。使用可视行模式将任务移动到 playbook 中的不同位置。

操作多行文本

Highlighting text to move in Line mode
  • 将光标放在要操作的文本的第一行或最后一行上的任何位置。
  • Shift+V 进入行模式。单词 VISUAL LINE 将出现在屏幕底部。
  • 使用导航命令(例如箭头键)高亮多行文本。
  • 高亮所需的文本后,使用命令来操作它。按 d 删除,然后将光标移动到新位置,然后按 p 粘贴文本。
  • 如果您想复制任务,可以使用 y(yank)代替 d(delete)。

缩进一组行

当使用 Ansible playbook 或 YAML 文件时,缩进很重要。可以使用 >< 键将高亮的块向右或向左移动。

Highlighting task to decrease indentation in Line mode
  • > 增加所有行的缩进。
  • < 减少所有行的缩进。

尝试其他 Vim 命令以将其应用于高亮的文本。

块模式

可视块模式对于操作特定的表格数据文件很有用,但它也可以作为验证 Ansible playbook 缩进的工具非常有帮助。

任务是一个项目列表,在 YAML 中,每个列表项都以破折号和空格开头。破折号必须在同一列中对齐,才能处于相同的缩进级别。仅凭人眼很难看到这一点。任务中其他行的缩进也很重要。

验证任务列表是否缩进相同

Block highlighting one column
  • 将光标放在列表项的第一个字符上。
  • Ctrl+v 进入可视块模式。单词 VISUAL BLOCK 将出现在屏幕底部。
  • 使用箭头键高亮单字符列。您可以验证每个任务是否缩进相同的量。
  • 使用箭头键向右或向左扩展块,以检查其他缩进是否正确。

Block multi-column

即使我熟悉其他 Vim 编辑快捷键,我仍然喜欢使用可视模式来整理我要操作的文本。当我在演示文稿中演示其他概念时,我的学生们看到了一个工具,可以在这个“对他们来说是新的”纯文本编辑器中高亮文本并点击删除。

My Horse's head hackergotchi
开源倡导者。Linux 极客。运维比开发多,但我们相处融洽。也从事 Apache Hadoop 工作,喜欢安全主题。RHCA。CISSP。技术培训师。演讲者。作家。顾问。Lauber System Solutions, Inc. 的总裁兼所有者。

2 条评论

请问您是否尝试过 VSCode Vim 模式?您如何评价这两个编辑器之间的开发体验?

完全公开:我在 https://VSCode.pro 上制作了一门课程,并已推荐许多开发人员试用 Vim Mode 扩展程序——作为一个很好的替代方案。欢迎您的反馈。

就我个人而言,我尝试过一些插件和各种编辑器。虽然还没有用过您的(但)。我鼓励我所有的学生和客户找到适合他们的东西。

作为一名讲师,我经常必须使用基本发行版中的工具进行演示。同样,学生练习也是为了使用最常见的库存实用程序编写的。

我经常发现自己在日常活动中也坚持使用基本工具。这比我在演示或解释我拥有的学生在课堂上无法使用的快捷方式时来回切换要容易得多。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.