如何在 vi 编辑器中删除选定的文本
Posted
技术标签:
【中文标题】如何在 vi 编辑器中删除选定的文本【英文标题】:How to delete selected text in the vi editor 【发布时间】:2011-03-08 02:16:21 【问题描述】:我正在使用 PuTTY 和 vi 编辑器。如果我用鼠标选择了 5 行,我想删除这些行,我该怎么做?
另外,如何使用键盘选择行,就像在 Windows 中按 Shift 并移动箭头来选择文本一样?我如何在 vi 中做到这一点?
【问题讨论】:
我有打印的人列表,但找不到如何删除选定的文本 x 删除光标右侧的字符 X 删除光标左侧的字符 D 删除到行尾 dd 删除当前行 :d 从lagmonster.org/docs/vi.html 删除当前行 希望对您有所帮助 关于超级用户的 VIM 问题?大声笑! @Pascal:嗯,是的,你是对的。顺便说一句,格式很好的答案。哦,他/她的问题不是关于 VIM,而是关于 VI。 ;) 【参考方案1】:如果要使用行号删除,可以使用:
:startingline, last line d
例子:
:7,20 d
此示例将删除第 7 到 20 行。
【讨论】:
到目前为止我还没有意识到这个提示。它就像一个魅力!谢谢!【参考方案2】:当使用像PuTTY 这样的终端时,鼠标点击和选择通常不会传输到远程系统。因此,vi 不知道您刚刚选择了一些文本。 (这也有例外,但通常不会传输鼠标操作。)
要删除 vi 中的多行,请使用 5dd
之类的内容删除 5 行。
如果您不使用 Vim,我会强烈建议您这样做。您可以使用视觉选择,按 V 开始视觉块,将光标移动到另一端,然后按 d 删除(或任何其他编辑命令,如 y 复制)。
【讨论】:
@Justin L.:使用<kbd>a</kbd>
。
谢谢! :D 是否还有更多这些隐藏在某个地方?
Putty 能够传输鼠标命令;第一句话可能已经过时了。【参考方案3】:
我正在使用 PuTTY 和 vi 编辑器。如果我用鼠标选择了 5 行,我想删除这些行,我该怎么做?
忘记鼠标。要删除 5 行,可以:
到第一行输入d5d(dd删除一行,d5d删除5行)~or~ 键入 Shift-v 进入行选择模式,然后使用 j 向下移动光标(是的,使用 h、j、k和l移动向左、向下, up,right,这比使用箭头更有效)并键入 d 删除选择。另外,如何使用键盘选择行,就像在 Windows 中按 Shift 并移动箭头以选择文本一样?我如何在 vi 中做到这一点?
正如我所说,要么使用 Shift-v 进入逐行选择模式,要么使用 v 进入逐字符选择模式,或者使用 Ctrl-v 进入进入分块选择模式。然后用 h、j、k 和 l 移动。
我建议花一些时间与 Vim Tutor (run vimtutor
) 一起以非常具有指导意义的方式熟悉 Vim。
另见
What is your most productive shortcut with Vim? 的这个答案(我最喜欢的 SO 答案之一)。 Efficient Editing With vim【讨论】:
实际上,如果你的终端支持vim,它对鼠标的支持非常好。例如在控制台中使用gpm
守护进程,或者在图形环境中运行xterm
或konsole
,您可以告诉vim set mouse=a
(或将其添加到您的.vimrc 中)并且可以使用鼠标进行选择, 调整拆分大小等。
@Ben 你说得对,我根本不使用鼠标,但这并不意味着 VIM 不能处理它(在某些情况下)。当你打字时,我实际上是从我的答案中删除了这个不准确的部分。
另外,很难判断你的 V 何时是大写字母...我建议使用 [Shift] + [V] 来选择行模式。
我知道已经有一段时间了,但为什么使用h
、j
、k
和l
会比使用箭头多更有效?使用箭头我认为没有问题,最终结果看起来相同。此外,箭头最初是为此目的而设计的,因此它们的排列感觉更加直观(至少对我而言)
@FredericoPantuzza 那时是手臂运动的问题 - 目标是始终将您的手指放在主行键上。随着时间的推移,必须拿起你的右臂并将其滑到箭头键上才能使用它们。【参考方案4】:
按照 vi 的方式进行。
要删除 5 行,请按:5dd
(5 删除)
要选择(实际上是将它们复制到剪贴板),请键入:10yy
有点难掌握,但是在使用这些远程终端时非常方便学习
注意一些编辑器的学习曲线:
(来源:calver at unix.rulez.org)
【讨论】:
【参考方案5】:如果要从当前行号中删除文件中的所有行,请使用dG
,它将删除所有行(shift g)
表示文件结尾
【讨论】:
【参考方案6】:使用鼠标突出显示仅突出显示终端上的字符。 VI 并没有真正得到这些信息,所以你必须以不同的方式突出显示。
按“v”进入选择模式,然后使用箭头键移动它。要删除,请按 x。 要一次选择行,请按 shift+v。 要选择块,请尝试 ctrl+v。这对于在代码前面插入大量注释行很有好处:)。
我对 VI 没问题,但我花了一段时间来改进。我的同事推荐我this cheat sheet。当我忘记某些东西时,我会在墙上打印出那些奇怪的时刻。
黑客愉快!
【讨论】:
以上是关于如何在 vi 编辑器中删除选定的文本的主要内容,如果未能解决你的问题,请参考以下文章