Vim 自动缩进换行

标签 vim indentation

如何让 vim 将光标放在新行开始的大括号内,即使用 |表示光标位置:

class {
  |
}

现在我的设置只能做到这一点

class {
|}

我在 .vimrc 文件中得到了这个 设置自动缩进 shiftwidth=2 tabstop=2 noexpandtab

基本上我只想知道普通的 IDE 如何缩进它。

更新:

我找到了如何使用 inoremap { {<CR>}<Esc>O 执行此操作

最佳答案

我有 Ubuntu 12.04,我在主目录中没有发现 vimrc 文件。全局 vimrc 文件位于 /etc/vim/vimrc 中。
此文件中几乎没有任何内容。所以对我来说,将这 3 行添加到 /etc/vim/vimrc

的末尾是有效的
set autoindent
set cindent
inoremap { {<CR>}<up><end><CR>

下次输入{时,将由组合{、Enter、}、up、end、Enter更改。 cindentautoindent 将添加所需数量的制表符。
附注我不擅长调整 vim,所以有些解释可能不太准确。我认为这就是它的工作原理。

关于Vim 自动缩进换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4477031/

相关文章:

python - 如何让 vim 在调用函数时只在括号后的下一行插入 4 个空格(一个缩进级别)?

syntax - Haskell 错误 : parse error on input `='

bash - 从 shell 脚本执行 Vim 命令

file - 在 Vim 的 C/C++ 代码中打开声明为 #include 的光标下的文件?

linux - 编辑文件并用 :w! 保存后,在 vim 中删除文件的 "read only"属性

VIM HTML自动缩进不起作用

Haskell 缩进不排列函数参数

Vim 输入不是来自终端

c - 设置编译器包含 (-I) 和 c.vim 插件?

c++ - Visual Studio 中特定于 Qt 的构造的损坏缩进