it-swarm.cn

从光标删除到`vi`中的行尾

我知道我可能已经在所有已阅读的vi文档中对此进行了一百万遍的检查,但是我似乎找不到从光标到行尾命令的删除。

334
Falmarri

命令 dw 将从当前光标位置删除到下一个Word字符的开头。命令 d$ (请注意,这是一个美元符号,而不是“ S”)将从当前光标位置删除到当前行的末尾。 D 是的同义词 d$

499
Tok

正如其他人提到的:您可以使用d$Dshift--d)从光标位置删除直到行尾。

我通常觉得更有用的是c$Cshift--c),因为它将从光标位置删除,直到行尾and都将您置于[插入]模式。

54
Brad Johnson

关于vi的妙处之一是其逻辑命令结构。 d后跟运动命令d删除该运动的目标。 $移至行尾(助记符:类似于regexps)。所以d$删除到行尾。同样,e移至当前单词的e nd,而w移至下一个w ord的开头;因此de删除当前Word的结尾,而dw则删除以下空白。

38

您可能要使用D。将光标移动到要删除的第一个字符,然后按shift-D。一切都消失了。实际上,它位于默认的剪切缓冲区中,因此您可以P或p将其粘贴回去。

我使用Dp(删除到行尾,然后放回去),移至另一行的末尾,然后再次使用p将相同的文本粘贴到另一行的末尾。在配置文件中起作用,您需要在两个或多个位置放置一些复杂的URL。

21
Bruce Ediger

要从光标位置后面删除一系列行, 3D 将从光标删除,直到行的末尾,以及接下来的两行完全删除(即删除光标位置后的3行)。

例如对于以下文本(以|表示的光标),

If there's a cursor |in the line
here
we
go

使用命令 3D 将输出:

If there's a cursor
go
1
Nick Bull

我认为插入模式快捷方式可能会派上用场。

在插入模式下,开始更改直到行尾可能更好(将其放在~/.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中执行操作时,这实际上是一个更大的问题。

1
SergioAraujo