VIM 编辑器中的 shiftwidth 有什么作用

use*_*787 8 vim vi

我在 Google 上阅读了有关 shiftwidth 选项的内容:要更改为缩进插入的空格字符数,请使用 'shiftwidth' 选项。

好吧好吧,但更确切地说是什么?我怎样才能尝试这个看看到底发生了什么?我创建了一个新的 C 文件,然后添加了一个 IF confition,但在识别过程中没有任何反应:

if (a > 0) { 这里什么都没有发生 }

谢谢!

小智 7

假设您已设置 shiftwidth=2

首先,您需要确保该文件具有 .c 扩展名。要么通过使用

$ vim foo.c
Run Code Online (Sandbox Code Playgroud)

用于新文件或使用 .c 扩展名保存文件。

现在输入

if (a > 0) {
Run Code Online (Sandbox Code Playgroud)

并按回车键。下一行将自动缩进。

if (a > 0) {
  foo();
Run Code Online (Sandbox Code Playgroud)

当你输入一个匹配的 '}' 时,vim 会正确地缩进它。

if (a > 0) {
  foo();
}
Run Code Online (Sandbox Code Playgroud)

阅读此文档以获得更清晰的信息。

  • 我试过了,但在花括号处按下回车键后,它会将光标置于行的开头。 (2认同)

小智 5

我可以推荐这个截屏德鲁·尼尔将解释制表位,softtabstop,shiftwidth的和expandtab如何协同工作。

  • 我只想说谢谢。这是我见过但从未听说过的最精彩的 VIM 网站。今天我找到了这个帖子,向下滚动并转到这个截屏视频并配置了我的 vim,现在它工作得很好。 (3认同)