始终缩进 vim

Always indent in vim

到目前为止,我一直使用 xemacs 进行源代码编辑 (C++),但出于多种原因,我想切换到或至少尝试一下 vim.最基本的事情之一是缩进,我对 xemacs 的行为非常满意。但是我还没有找到在 vim.

中出现这种行为的解决方案

我所说的基本上是在一行的任何位置按 Tab 的能力,并且该行将始终缩进到正确的级别。这意味着:

1) 多次按 Tab 不会 多次缩进,而是文本将(重新)对齐到适合当前代码的缩进级别

2) 按 Tab 例如在一个词的中间 不会 在这个词之间插入空格或制表符,而是缩进整行

是否可以通过 vim 实现此目的?

目前我有:

filetype indent plugin on
set cident
set autoindent
set shiftwidth=3
set softtabstop=3
set expandtab

在正常模式下,按 == 应该可以修复当前行的缩进。

您可以通过以下方式修复多行的缩进:

  • 选择它们并按下 =,
  • 使用动作,=}
  • 使用文本对象,=ip

在插入模式下,您可以使用 <C-o>== 修复当前行的缩进,但插入点也会移动。你不应该在插入模式下做那种事。