始终缩进 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>==
修复当前行的缩进,但插入点也会移动。你不应该在插入模式下做那种事。
到目前为止,我一直使用 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>==
修复当前行的缩进,但插入点也会移动。你不应该在插入模式下做那种事。