【问题标题】:How to respect indentation of original authors in vim?如何尊重vim中原作者的缩进?
【发布时间】:2015-05-09 11:12:41
【问题描述】:
有很多关于在vim 中为特定文件定义自己的缩进样式的问题和答案。例如,python 在 Ubuntu 上的默认设置是在 ftype/python.vim 中设置的,可以用自定义喜欢的内容覆盖,在 ~/.vimrc 中声明:
aug python
au FileType python setlocal ts=3 sts=3 sw=3 noexpandtab
aug end
如果我正在编写自己的代码,这很好,但如果我正在编辑其他人的文件,我想使用他们的缩进样式。
如何自动应用~/.vimrc 中文件的现有缩进,同时对新文件使用我自己的缩进?
【问题讨论】:
标签:
vim
indentation
auto-indent
【解决方案1】:
Vim 没有内置的自动缩进检测/调整。 vim-sleuth 和 YAIFA 是两个运行良好的“安装后忘记”插件(还有一些其他插件)。
如果你不想要第三方插件或者不想自己写,你可以试试这样的:
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