我如何使vi-Vim从来不使用制表符(将空格转换为制表符,坏!),使制表键== 4个空格,并自动缩进代码花括号块后像Emacs ?
此外,我如何保存这些设置,这样我就不必再次输入它们了?
我见过其他与此相关的问题,但它似乎总是有点偏离我想要的。
我如何使vi-Vim从来不使用制表符(将空格转换为制表符,坏!),使制表键== 4个空格,并自动缩进代码花括号块后像Emacs ?
此外,我如何保存这些设置,这样我就不必再次输入它们了?
我见过其他与此相关的问题,但它似乎总是有点偏离我想要的。
当前回答
自动缩进基于当前语法模式。我知道如果您正在编辑Foo.java,那么输入{并按Enter将下面的行缩进。
对于选项卡,有两种设置。在Vim中,键入冒号,然后“set tabstop=4”,这将设置制表符显示为四个空格。再次点击冒号,输入“set expandtab”,这将为制表符插入空格。
您可以将这些设置放在主目录的.vimrc(或Windows上的_vimrc)中,因此您只需键入一次。
其他回答
最简单的是一个vim文件
set tabstop=4
来自VIM wiki:
:set tabstop=4
:set shiftwidth=4
:set expandtab
编辑~/.vimrc
$ vim ~/.vimrc
增加如下行:
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
推荐的方法是使用基于文件类型的缩进,如果不能满足要求,只使用smartindent和cindent。
将以下内容添加到.vimrc中
set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on
希望这是一个不同的答案。
获得特定于文件类型的缩进的最好方法是在vimrc中使用文件类型插件缩进。然后你可以在.vim/ftplugin/c中指定set sw=4 sts=4 et。例如,vim,而不必为所有被编辑的文件设置全局,其他非c类型的语法也会正确地缩进(甚至是口齿不清)。