如何尊重vim中原作者的缩进?

时间:2015-05-09 11:12:42

标签: vim indentation auto-indent

vim中为特定文件定义自己的缩进样式有很多问题+答案。例如,python的Ubuntu上的默认设置在ftype/python.vim中设置,可以使用自定义喜欢的内容覆盖,~/.vimrc中的语句:

aug python
    au FileType python setlocal ts=3 sts=3 sw=3 noexpandtab
aug end

如果我正在编写自己的代码,这很好,但如果我正在编辑其他人的文件,我想使用他们的缩进样式。

~/.vimrc中自动应用文件的现有缩进并同时使用我自己的缩进来处理新文件的方法是什么?

1 个答案:

答案 0 :(得分:2)

Vim没有内置的自动缩进检测/调整功能。 vim-sleuthYAIFA是两个“安装即忘记”的插件(还有其他一些)可以很好地运行。

如果您不想要第三方插件或不想自己编写插件,可以尝试以下方法:

command! -nargs=1 Spaces execute "setlocal shiftwidth=" . <args> . " softtabstop=" . <args> . " expandtab" | set shiftwidth? softtabstop? expandtab?
command! -nargs=1 Tabs   execute "setlocal shiftwidth=" . <args> . " softtabstop=" . <args> . " noexpandtab" | set shiftwidth? softtabstop? expandtab?

你可以这样使用:

:Space 4    " 4 spaces for indentation
:Tabs 3     " 3 chars-wide tabs for indentation