有时候vim的smartindent在你点击Enter后没有为下一行选择正确的缩进级别,而你想回到前一行的缩进级别并从那里开始。我知道你可以多次点击ctrl-d
来达到这个目的,但对于一个直接进入上一行缩进级别的密钥会更有用。
答案 0 :(得分:3)
我不知道这是不是纯粹的巧合,但是Alexey Radev刚刚发布了prev_indent plugin,它提供了插入模式映射和:PrevIndent
命令来将当前行移动到前一个缩进级别。
答案 1 :(得分:1)
在正常模式下,您可以使用<
和>
来增加或减少缩进。它们按预期工作,包括移动,视觉选择以及当前行的>>
<<
。您也可以使用=
来选择“正确的”缩进级别,再次按照预期的方式运行等。
所以我通常做的是在完成编辑后,通过块选择和使用=
,然后使用<<
和{{修复单个行来修复正常模式下的缩进错误1}}。
答案 2 :(得分:1)
如果您无法为这么简单的任务安装插件(我不能),请尝试这个简单的映射:
:inoremap <C-D> <Esc>:call setline(".",substitute(getline(line(".")),'^\s*',matchstr(getline(line(".")-1),'^\s*'),''))<CR>I
现在 Ctrl D 在插入模式下将执行契约:缩进当前行,就像上一行一样。
在开始在新行上键入之前,这种方法效果最好,因为它会将光标重置为刚好超过缩进。
答案 3 :(得分:0)
您可以使用<C-O>=G
在插入模式下从光标缩进到文件末尾。或<C-O><<
删除一个缩进级别。