vim 如何尊重原作者的缩进?
How to respect indentation of original authors in vim?
关于在 vim
中为特定文件定义 自己的 缩进样式,有很多问题和答案。例如,python
的 Ubuntu 的默认值设置在 ftype/python.vim
中,可以用自定义的东西覆盖,在 ~/.vimrc
:
中声明
aug python
au FileType python setlocal ts=3 sts=3 sw=3 noexpandtab
aug end
如果我正在编写自己的代码,这很好,但如果我正在编辑别人的文件,我想使用 他们的 缩进样式。
如何在 ~/.vimrc
中自动应用文件的现有缩进,同时对新文件使用我自己的缩进?
Vim 没有内置自动缩进 detection/adjustment。 vim-sleuth and YAIFA 是两个 "install-and-forget" 插件(还有其他几个),效果很好。
如果你不想要第三方插件或者不想自己写,你可以试试这样:
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
关于在 vim
中为特定文件定义 自己的 缩进样式,有很多问题和答案。例如,python
的 Ubuntu 的默认值设置在 ftype/python.vim
中,可以用自定义的东西覆盖,在 ~/.vimrc
:
aug python
au FileType python setlocal ts=3 sts=3 sw=3 noexpandtab
aug end
如果我正在编写自己的代码,这很好,但如果我正在编辑别人的文件,我想使用 他们的 缩进样式。
如何在 ~/.vimrc
中自动应用文件的现有缩进,同时对新文件使用我自己的缩进?
Vim 没有内置自动缩进 detection/adjustment。 vim-sleuth and YAIFA 是两个 "install-and-forget" 插件(还有其他几个),效果很好。
如果你不想要第三方插件或者不想自己写,你可以试试这样:
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