Vim 的自动缩进/格式代码?

chr*_*lee 52 vim

我尽可能多地尝试使用 Vim。我在 Vim 和 Aptana 等 IDE 之间最大的优势之一是自动缩进的能力。

是否有自动格式化代码(HTML、CSS、PHP)的方法,以便正确缩进?

如果是这样,您如何将其安装到 vim 中?我不太了解插件。我尝试查看此线程,但它让我更加困惑:如何更改 vim 自动缩进行为?

tak*_*hin 91

自动缩进整个文件:

gg
=G
Run Code Online (Sandbox Code Playgroud)

解释:

  • gg - 转到文件的开头
  • G - 转到文件末尾
  • =-缩进

  • 你能分解一下吗?g 通常本身是什么?和=G? (2认同)
  • 很好的提示,我从来不知道这个。但是,它在 bash 方面做得很垃圾。 (2认同)

Hai*_* Vu 26

我不知道自动格式化现有代码,但如果您正在编写代码并需要自动缩进:

  • :set autoindent(或:set ai) 将打开自动缩进
  • Ctrl-d取消缩进(AKA outdent)你的代码
  • 要缩进的制表符或空格——我个人使用制表符
  • :set tabwidth=4( 或:set tw=4) 将控制制表符应缩进多少个空格
  • >>命令将缩进当前行。如果你用一个数字作为前缀,4>>那么它会从当前行开始缩进 4 行。
  • 同样,该<<命令将取消缩进一行

我希望这能给你一个好的开始。

  • 要自动缩进现有代码,请在正常模式下使用 `={motion}` -- 例如 `=G` 会将所有代码从当前行缩进到文件末尾。`==` 将缩进当前行。 (9认同)
  • set tw=4 将 TEXTWIDTH 设置为 4 (2认同)

Rah*_*til 11

自动缩进 *.sh

只需添加以下几行 ~/.vimrc

filetype indent on
set smartindent
autocmd BufRead,BufWritePre *.sh normal gg=G
Run Code Online (Sandbox Code Playgroud)