Vim 如果在缩进级别删除
我想在插入模式下实现此行为: 之前:Vim 如果在缩进级别删除,vim,Vim,我想在插入模式下实现此行为: 之前: xxxxxxxxxxxx xxxxxxxxxxxx |[any string] xxxxxxxxxxxx 之后:在插入模式下按delete键 xxxxxxxxxxxx xxxxxxxxxxxx|[any string] xxxxxxxxxxxx |=光标 [任何字符串]=”、“文本”、“[任何空白]文本” 您将如何实现这一点?您可以通过按两次来获得该行为;一次删除缩进,一次与前一行合并 现在,您只需要检查条件(光标
xxxxxxxxxxxx
xxxxxxxxxxxx
|[any string]
xxxxxxxxxxxx
之后:在插入模式下按delete键
xxxxxxxxxxxx
xxxxxxxxxxxx|[any string]
xxxxxxxxxxxx
您将如何实现这一点?您可以通过按两次
来获得该行为;一次删除缩进,一次与前一行合并
现在,您只需要检查条件(光标位于带有纯缩进的行上)并构建条件映射(cp.:help:map expression
):
:inoremap strpart(getline(')、0、col(')-1)=~#'^\s\+$'?“”“”
如果您在这里没有得到任何有用的东西,请改为尝试。哦,tnx,我会在vi.stack中尝试。。。但这是一个编程问题当然,我从来没有说过这是离题的。但它可能也会在那个里的主题,并有一个专门的vi/vim社区。是否可以分享这个问题。在这里和vi/vim社区?不,不要越过柱子。但是,如果您将来对vi/vim有任何疑问,请访问vi.stackexchange.com。你不必这么做。只是告诉你你的可能性。和往常一样,请阅读您希望在其中发布问题的任何社区的教程和相关页面。=)Uf现在我还记得一件事,对不起,请看更新的问题:S.=~~~
是区分大小写的正则表达式匹配(与^\S\+$
),cp.:h=~~
哦,我知道这很酷。我认为这是在正常模式下的一些命令。我会尝试用更新的问题更新你的正则表达式。我已经适应了只考虑光标之前的文本。
:inoremap <expr> <BS> strpart(getline('.'), 0, col('.') - 1) =~# '^\s\+$' ? '<C-u><C-u>' : '<BS>'