假设我已将这篇文章写成一行:
myNewFunction(argument); // some junk I don't need
^
my cursor
在分号(我正在使用分号)后删除所有内容的最快方法是什么。因此,例如,D将无法工作,因为它也会删除分号。我知道我可以做lD(向右移动,然后删除)
是否有一般方法在光标后删除?理想情况下,我甚至可以做Da3之类的事情(删除光标位置后的所有三个字符)
编辑:这经常发生在我输入分号后然后按Esc - 现在我的光标在分号上。
答案 0 :(得分:3)
所以 - 如果你处于插入模式,<C-O>
只关闭一个命令,而不移动光标。因此,如果您执行<C-O>D
,您将删除该行的其余部分并退回到插入模式。
如果您处于正常模式,lD
应该足够快。
答案 1 :(得分:0)
我认为没有映射或重复替换它是不可能的。
如果您没有“重复”替换的问题,您可以进行第一次替换:
:s/;\ze.*$//
然后,使用&
重复它是一个关键的中风,但你必须进行替换,然后重复它。为了清楚起见,按&
重复最后一次替换。它类似于.
命令,但仅用于替换
答案 2 :(得分:0)
尝试创建一个函数并将其与法线贴图一起使用。
这会在当前光标位置下获取字符,而不是D
使用C
来设置插入模式,并让我们将字符保存得很普遍:
function! DeleteUntilEOL()
let c = getline('.')[col('.')-1]
execute 'normal C' . c
endfunction
现在创建映射:
:nnoremap <leader>D :call DeleteUntilEOL()<CR>