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>'