在vi中删除行


168

如何在VI中删除一行?

这是我现在正在做的事情:

  1. 打通终端alt+ ctrl+t
  2. vi a.txt
  3. 我将光标移到要删除的行,那么在vi编辑器中删除行应该使用什么组合键

5
我建议您阅读washington.edu/computing/unix/vi.html,它为您提供了基本的使用概述。这是一个备忘单tuxfiles.org/linuxhelp/vimcheat.html在问一些琐碎的问题之前,先浏览一下这样的页面总是一个好主意……
polemon 2011年

2
还有用于删除行并输入插入的S
Ben Creasy

Answers:


289

按下dd将删除该行(实际上将其剪切)。因此,您可以通过粘贴它p


22

正如其他人所说的,这是dd如果您处于正常模式(按ESC)以确保您处于正常模式,但是默认情况下会如此。您可能已经发现vi并不像您期望的编辑器那样起作用。它非常独特,并且这些独特的功能使其功能极为强大且快速。如果您想了解更多信息,可以vimtutor在命令行中运行,然后您将获得有关如何使用它的快速基础(可能需要一个小时的阅读/实验)的教程。

现在,您可以使用界面更熟悉的编辑器。大多数系统都有nano。您可以输入nano a.txt以打开文件nano。您甚至可以更进一步-没有任何理由必须使用基于终端的编辑器。由于您提到使用(Ctrl+ Alt++ T),并且这是Ubuntu和其他一些Gnome发行版中的默认快捷方式,因此如果您没有gedit安装,我会感到惊讶。在命令行中尝试gedit a.txt,您将获得一个图形编辑器。


一些人需要它。如果您定期编辑文本文件,则值得花时间学习vim。如果您不这样做,而您只是尝试按照一些说明进行操作,那么除非您只想尝试其他软件并学习新知识,否则可能不值得。
肖恩·高夫

我在命令行解雇了vimtutor,它打开了一个带有临时性的vim。文件。我有做错什么吗?
IM-JM

@ im-jm我不认为您犯了一个错误,但是您的系统可能具有异常的配置。它应该打开一个以“ Welcome to the VIM Tutor”开头的文档。如果您有兴趣解决此问题,则应该发布另一个问题。
肖恩·高夫

12

要删除光标下方的行,请使用dd

delete命令接受所有正常的位置修饰符,因此,如果您位于要删除的位置修饰符下方的行的开头,则可以dk进入删除模式并向上移动一行,删除光标通过的所有内容。

您还可以指定重复,因此5dd将光标下的行删除五次,有效删除当前行和随后的四行。


8
或者d5d。我不知道为什么,但是我喜欢这个。(有趣的事实:NdMd删除N × M行)
Random832

7

Esc dd 转到要删除的行之后


2
如果可以转到要删除的行,则不必进行转义。
Anthon 2014年

3
如果在插入模式下使用箭头键转到右行,则需要转义。
亚历山大

1

在视觉模式下,

shift + v,选择线,然后d

ctrl + v,选择列,然后按d

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.