2

假设我在一行上有这个文本:

myNewFunction(argument); // some junk I don't need
                       ^
                   my cursor

删除分号后所有内容的最快方法是什么(我正在使用)。例如,D 将不起作用,因为它也删除了分号。我知道我可以做 lD(向右移动一个,然后删除)

有没有一般的方法可以光标后删除?理想情况下,我什至可以做类似 Da3 的事情(删除光标位置后的所有三个字符)

编辑:这通常发生在我输入完分号然后按 Esc 之后 - 现在我的光标位于分号上。

4

3 回答 3

3

大声笑....好的,我会输入它。

所以 - 如果您处于插入模式,请<C-O>仅针对一个命令将其关闭,而不移动光标。因此,如果您这样做<C-O>D,您将删除该行的其余部分并重新进入插入模式。

如果您处于正常模式,lD应该足够快。

于 2013-07-12T06:49:29.337 回答
0

尝试创建一个函数并将其与法线映射一起使用。

这将获取当前光标位置下的字符,而不是D使用C设置插入模式并让我们预先保存字符:

function! DeleteUntilEOL()
    let c = getline('.')[col('.')-1]
    execute 'normal C' . c 
endfunction

现在创建映射:

:nnoremap <leader>D :call DeleteUntilEOL()<CR>
于 2013-07-12T06:03:41.887 回答
0

我认为没有映射或重复替换是不可能的。

如果“重复”替换没有问题,则可以进行第一次替换:

:s/;\ze.*$//

然后,使用&一键重复它,但你需要进行替换,然后重复它。为了清楚起见,按下会&重复最后一次替换。这就像.命令,但仅用于替换

于 2013-07-12T05:48:16.170 回答