Anonim

vi是一个著名的面向屏幕的文本编辑器,其历史可以追溯到Unix的早期。 它最令人印象深刻的功能是它可以在两种不同的模式下运行。

在插入模式下,文本将成为文件的一部分。 在普通模式下,击键被理解为直接命令。 因此,使用各种键盘命令来减少编辑文件所需的工作量。

但是,如果命令是如此不同,那么使用击键命令删除行或对其进行编辑真的更容易吗? –让我们找出答案。

切割线或块

快速链接

  • 切割线或块
        • 将光标置于要删除的文本行的前面
        • 按下v,开始视觉形象选择
        • 如果要选择整行,请按V
        • 如果要选择一个块,请按Ctrl + v或Ctrl + q
        • 将光标置于文本行的末尾
        • 按d剪切
  • 在一行上编辑
  • 删除多行
  • 在普通模式下使用字符,单词和行
    • dd
    • x / X
    • dw
  • 最后的想法
  1. 将光标置于要删除的文本行的前面

  2. 按下v,开始视觉形象选择

  3. 如果要选择整行,请按V

  4. 如果要选择一个块,请按Ctrl + v或Ctrl + q

  5. 将光标置于文本行的末尾

  6. 按d剪切

如果现在要将该行粘贴到其他位置,只需将光标移到新位置并按p。 请注意,按p将在光标位置之后粘贴行或块。 如果要粘贴在光标位置之前,则必须按P。

在一行上编辑

如果在步骤6中按c,也可以更改选定的文本。按d将剪切,按y将进行拉动或复制,并且c将打开可在其中添加新文本的插入模式。 这可以帮助您更换整个生产线或块,而不必费心先切割它们。

删除多行

如果要在vi中删除多个行,有两个不错的选择。

“:%d”

此命令删除所有行。 ':'将vi置于命令模式。 '%'字符告诉它将'd'(删除命令)应用于所有行。

“:1, $d”

这是更流行的选择。 同样,“:”引入命令。 '1,$'告诉vi要定位的行。 在此示例中,将是从第1行开始的行和最后一行。 “ d”代表删除。

但是,什么使该命令比第一个更好呢? –这是适应性强的。 您可以使用它来批量删除行,而不必删除每一行。

如果使用“:4, $-2d”类的东西“:4, $-2d” vi将删除倒数第二到倒数第二行之间的所有行。 由于行以1而不是0开头,因此保留了前三行。而且,您指定要删除的第一行,在本示例中为4。

“ -2”基本上代表从最后一行开始算起回到1的行数。

在普通模式下使用字符,单词和行

首先,您需要确保单击Escape进入正常模式。 之后,可以使用以下vi命令删除特定信息。

dd

此命令删除整行。 您可以将光标定位在行上的任何位置,无论是在单词还是空白处。 该行及其占用的所有空间都将被删除。

x / X

如果只想从一行中删除一个字符,则可以使用x。 将光标放在一个字符之后,然后按x。 这将删除角色及其占用的空间。 这也意味着靠近它的所有其他字符将一起填补空白。

您也可以使用x删除一行中的空格。 如果将鼠标悬停在一个字符上并且想要删除该字符之前的字符,请按X而不是x。

dw

当光标位于单词的开头时按dw将删除该单词。 这也将删除单词占用的空间。 或者,您可以仅删除单词的一部分。

将光标置于要删除的零件的左侧。 按dw删除这些字符及其在行中占据的空间。 请记住,这样做会将相邻的字符放在一起以填补空白。

最后的想法

作为模式编辑器,vi既有趣又独特,它需要一段时间才能习惯。 在模式之间进行切换时,反馈很少。 这样,在您应该发出命令时很容易意外输入代码文本,反之亦然。

如何删除vi中的所有行