如果在缩进级别删除

If delete at indentation level

我想在插入模式下实现这个行为:

之前:

xxxxxxxxxxxx
    xxxxxxxxxxxx
    |[any string]
    xxxxxxxxxxxx

之后:在插入模式下按键删除

xxxxxxxxxxxx
    xxxxxxxxxxxx|[any string]
    xxxxxxxxxxxx
  1. | = 游标

  2. [任意字符串] = "","text","任意白色-space]文本"

先生,您将如何实施?

您可以通过按两次 <C-U> 来实现该行为;一次删除缩进,一次加入前一行。

现在,您只需要检查条件(光标在纯缩进的行上)并构建条件映射(cp.:help :map-expression):

:inoremap <expr> <BS> strpart(getline('.'), 0, col('.') - 1) =~# '^\s\+$' ? '<C-u><C-u>' : '<BS>'