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

问题描述:

关于在vim中为特定文件定义自己的缩进样式有很多问题和解答。例如,对于python在Ubuntu默认的设置在ftype/python.vim可定制喜好的东西所覆盖,具有声明~/.vimrc如何尊重原作者在vim中的缩进?

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

这是好的,如果我写我自己的代码,但如果我编辑别人的文件我想用他们的缩进样式。

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

+1

https://github.com/tpope/vim-sleuth – FDinoff

+0

http://www.vim.org/scripts/script.php?script_id=3096 – romainl

+0

只能通过插件? –

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