如何在vi编辑器中删除所选文本


116

我正在使用PuTTY和vi编辑器。如果我使用鼠标选择五行,并且想要删除这些行,该怎么办?

另外,如何在Windows中按键盘Shift并选择箭头并选择箭头来选择行?我怎样才能做到这一点?


1
我有印刷的人员清单,但找不到如何删除选定的文本

x删除光标右侧的字符X删除光标D左侧的字符删除dd行的末尾删除当前行:d从lagmonster.org/docs/vi.html删除当前行 希望有所帮助
Mawg说恢复莫妮卡

1
VIM对超级用户有疑问吗?大声笑!
Pascal Thivent 2010年

1
@Pascal:嗯,是的,你是对的。顺便说一下,格式正确的答案。哦,他/她的问题不是关于VIM,而是关于VI。;)
Marcel Korpel 2010年

Answers:


215

我正在使用PuTTY和vi编辑器。如果我使用鼠标选择五行,并且想要删除这些行,该怎么办?

忘了鼠标。要删除5行,请执行以下任一操作:

  • 转到第一行并键入d5ddd删除一行,d5d删除5行)〜或〜
  • 键入Shift-v进入面向行的选择模式,然后向下移动光标使用j(是,使用hjkl以移动向上向右分别,这比使用箭头更有效),然后键入d删除选区。

另外,如何在Windows中按键盘Shift并选择箭头并选择箭头来选择行?我怎样才能做到这一点?

就像我说的那样,可以使用Shift-v进入逐行选择模式或v进入字符选择模式或Ctrl-v进入逐块选择模式。然后用移动hjkl

我建议花一些时间在Vim Tutor(运行vimtutor)上,以一种非常有说服力的方式来熟悉Vim。

也可以看看


1
实际上,如果您的终端支持vim,它将对鼠标有很好的支持。例如使用gpm在控制台守护程序,或运行xtermkonsole在图形环境中,你可以告诉Vim set mouse=a(或将其添加到您的.vimrc)和鼠标可用于选择,调整拆分,等等
本·沃伊特

@Ben您是对的,我根本不使用鼠标,但这并不意味着VIM无法处理它(在某些情况下)。我实际上是在键入时从我的答案中删除了这个不准确的部分。
Pascal Thivent 2010年

另外,真的很难分辨出您的V何时是大写的...我建议说[Shift] + [V]作为线路模式选择。
Ben Voigt 2010年

我知道它已经有一段时间,但为什么使用hjkl比使用箭头更有效率?使用箭头我看不出任何问题,最终结果看起来相同。同样,箭头最初是为此目的而设计的,因此它们的排列感觉更加直观(至少对我而言)
Frederico Pantuzza

1
@FredericoPantuzza这是手臂移动的问题-目标是始终使手指保持在主行键上。必须拿起右臂并将其滑到箭头键上才能使用它们,这会随着时间的推移而累积。
AndrewF

59

用vi的方式做。

要删除5行,请按:(5dd5删除)

要选择(实际上将它们复制到剪贴板),请键入: 10yy

使用起来有些困难,但是使用这些远程终端时非常容易学习

注意某些编辑器的学习曲线:


(来源:unix.rulez.org的calver


31

如果要使用行号删除,可以使用:

:startingline, last line d

例:

:7,20 d

本示例将删除第7至20行。


到目前为止,我还没有意识到这个技巧。它就像一个魅力!谢谢!

13

用鼠标突出显示只能突出显示终端上的字符。VI并未真正获得此信息,因此您必须以不同的方式突出显示。

按“ v”进入选择模式,然后使用箭头键将其移动。要删除,请按x。要一次选择行,请按shift + v。要选择块,请尝试按ctrl + v。例如,这对于在代码前面插入很多注释行是很有用的:)。

我对VI表示满意,但花了我一段时间才能改善。我的同事们推荐我这份备忘单。当我忘记某些东西时,我在那些奇怪的时刻将打印输出保留在墙上。

骇客骇客!


6

当使用PuTTY之类的终端时,通常鼠标的单击和选择不会传输到远程系统。因此,vi不知道您只是选择了一些文本。(对此有一些例外,但通常不会传输鼠标操作。)

要在vi中删除多行,请使用类似于5dd删除5行的操作。

如果您不使用Vim,我强烈建议您使用。您可以使用视觉选择,在其中按下V以启动视觉块,将光标移至另一端,然后按d进行删除(或任何其他编辑命令,例如y复制)。


1
@Justin L .:使用<kbd>a</kbd>
格雷格·休吉尔

1
谢谢!:D这些隐藏在某处吗?
贾斯汀·L.2010年

1
腻子能够传输鼠标命令;第一句话可能已过时。
congusbongus

3

如果要从当前行号中dG删除(shift g)文件中的所有行,请使用,它将删除文件末尾的所有行

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.