如何在插入模式下返回上一个缩进级别?

rgr*_*erg 7 vim

有时vim的smartindent在你进入下一行时没有为下一行选择正确的缩进级别,你想要回到前一行的缩进级别并从那里开始.我知道你可以打ctrl-d几次来达到这个目的但是对于一个直接进入上面一行缩进级别的键来说会更有用.

glt*_*lts 1

如果您不愿意为这样一个简单的任务安装插件(我不能),请尝试这个简单的映射:

:inoremap <C-D> <Esc>:call setline(".",substitute(getline(line(".")),'^\s*',matchstr(getline(line(".")-1),'^\s*'),''))<CR>I
Run Code Online (Sandbox Code Playgroud)

现在CtrlD在插入模式下将执行以下操作:像上一行一样缩进当前行。

在开始在新行上键入之前,此方法效果最佳,因为它将重置光标到刚刚经过缩进的位置。