如果在缩进级别删除

时间:2015-03-19 12:47:57

标签: vim

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

之前:

xxxxxxxxxxxx
    xxxxxxxxxxxx
    |[any string]
    xxxxxxxxxxxx

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

xxxxxxxxxxxx
    xxxxxxxxxxxx|[any string]
    xxxxxxxxxxxx
  1. | = cursor

  2. [any string] =“”,“text”,“[any-white-space] text”

  3. 你们先生如何实现这个目标?

1 个答案:

答案 0 :(得分:1)

按两次<C-U>可以获得该行为;一次删除缩进,一次加入前一行。

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

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