vi
文档中浏览了一百万遍,但是似乎找不到从光标到行尾命令的删除。#1 楼
D
(= Shift + D)DW命令将从当前光标位置删除到下一个单词字符的开头。命令D $(注意,这是一个美元符号,而不是“ S”)将从当前光标位置删除到当前行的末尾。 Shift + D是D $的同义词。
#2 楼
正如其他人提到的那样:您可以使用d$
或D
(shift-d)从光标位置删除,直到行尾。我通常觉得更有用的是
c$
或C
(shift-d) c)因为它将从光标位置删除到行尾,并使您进入[插入]模式。评论
不错!!!在我看来,对于大多数人来说,这比D好得多,因为它不会使您在行尾移动一个空格。
–伊利亚·林恩(Elijah Lynn)
17年3月21日在23:17
为什么这个答案一直隐藏在这里?这是我来这里时真正想要的功能。
– M_M
17年7月13日在15:07
@ElijahLynn无论如何都不应该是一个问题。 Vim有两种主要的方式来进入插入模式:i在光标之前插入,而a在光标之后插入。如果光标位于该行的末尾,并且您想插入该行的末尾,则可以使用a。
– Lie Ryan
18-10-22在13:30
目标是一次完成一项操作,而不是两项。额外的按键=额外的摩擦。
–伊利亚·林恩(Elijah Lynn)
19年1月10日在1:42
Shift-C很棒!谢谢! +1!
–rmbianchi
8月12日15:20
#3 楼
关于vi的好处之一是其逻辑命令结构。d
后跟运动命令将删除该运动的目标。 $
移至行尾(助记符:类似于regexps)。因此,d$
删除到该行的末尾。同样,e
移至当前单词的末尾,而w
移至下一单词的开头;因此de
删除当前单词的结尾,而dw
另外删除以下空格。评论
@gioele我将
–吉尔斯'所以-不再是邪恶的'
2014年4月29日在9:42
@吉尔斯你是对的。我刚刚尝试过d ^,它已从光标位置删除到行首。
–ka3ak
16-4-2在11:57
我一直用(d)删除(a)(w)ord删除单词:)
–BłażejMichalik
16-09-21在20:51
#4 楼
您可能要使用D。将光标移动到要删除的第一个字符,然后按shift-D。一切都消失了。实际上,它在默认的剪切缓冲区中,因此您可以P或p粘贴回去。我使用Dp(删除到行尾,然后放回去),移到某些行的末尾另一行,然后再次p将另一行末尾粘贴相同的文本。在配置文件中发挥作用,您需要在两个或多个位置放置一些复杂的URL。
评论
无论如何,这可能是他使用的最小Vim。
–polemon
2010年12月3日,9:17
#5 楼
我认为插入模式快捷方式可能会派上用场。在插入模式下,开始更改直到行尾可能更好(将其放在您的
~/.vimrc
上):inoremap <C-l> <C-o>C
因此,正如您所说的,正常模式下为D,插入模式下为Ctrl + l。如您所见,C也开始变化,直到行尾。
<C-o> ......... insert normal keystroke in insert mode
我选择Ctrl-l是因为
l
在您的指尖下。 Ctrl-k已经用于插入图。我一直在
:h i_Ctrl
上搜索一些免费的键绑定,而在创建新的快捷方式以在vim中执行操作时,这实际上是一个更大的问题。 #6 楼
要从光标位置之后删除一系列行,3D将从光标中删除到行的末尾,以及接下来的两行完全删除(即删除光标位置之后的三行)。例如对于以下文本(以
|
表示的光标),If there's a cursor |in the line
here
we
go
使用3D命令将输出:
If there's a cursor
go
评论
是的,我知道dw,但是我想我只是假设会有一个“删除此行的其余部分”命令。例如,我的行的ip = | 10.1.1.1带有|是光标位置。是否有一条命令将删除所有10.1.1.1?
–法尔玛里
10 Nov 29 '21:03
@Falmarri-我很抱歉,我一定误会了您的问题。为此有一个命令:d $
– ok
2010-11-29 21:04
D(Shift + d)也是d $的同义词。
– Neth
2010-11-29 22:06
@Andy,工作是从光标删除到行尾。如果您考虑删除更多内容是为了“完成任务”,则也可以只使用:!rm -f%然后使用:q!。那会删除整个文件。
–通配符
17-10-27在1:28
@Amir只需使用d ^('d'+插入符号)...基本上是d +我通常认为可以移动光标的任何字符,但是我自己正在学习Vim,所以在这方面我可能是错误的。
– JakeD
17/12/24在2:25