vi是一个著名的面向屏幕的文本编辑器,其历史可以追溯到Unix的早期。 它最令人印象深刻的功能是它可以在两种不同的模式下运行。
在插入模式下,文本将成为文件的一部分。 在普通模式下,击键被理解为直接命令。 因此,使用各种键盘命令来减少编辑文件所需的工作量。
但是,如果命令是如此不同,那么使用击键命令删除行或对其进行编辑真的更容易吗? –让我们找出答案。
切割线或块
快速链接
- 切割线或块
-
-
- 将光标置于要删除的文本行的前面
- 按下v,开始视觉形象选择
- 如果要选择整行,请按V
- 如果要选择一个块,请按Ctrl + v或Ctrl + q
- 将光标置于文本行的末尾
- 按d剪切
-
-
- 在一行上编辑
- 删除多行
- 在普通模式下使用字符,单词和行
- dd
- x / X
- dw
- 最后的想法
如果现在要将该行粘贴到其他位置,只需将光标移到新位置并按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既有趣又独特,它需要一段时间才能习惯。 在模式之间进行切换时,反馈很少。 这样,在您应该发出命令时很容易意外输入代码文本,反之亦然。