Writing python in vim: What is the best way to do tab emulation?
我总是使用vim写perl而且我开始转换到python但是我看到有人说如果选择正确的编辑器,将选项卡转换为空格,则不需要4次打空间。
我喜欢vim而不愿意搬家。 我从5年前看过这个SO线程,想知道这是否仍然是实现它的最佳方式,还是有更简单/更新的方式?
Tab键== 4个空格并在Vim中的花括号后自动缩进
-
这个答案有什么问题? 它只有4行,如果你把它们放在.vimrc文件中,你甚至不需要每次输入它们。
-
我主要想知道5年后它是否仍然相关或需要。 更新版本的vim内置了功能,这会使这个多余或不起作用。
-
这是Vim的内置功能。 您只需设置选项即可告诉Vim使用哪种内置行为。 当他们点击标签时并不是每个人都想要4个空格。 就像在点击式编辑器的设置对话框中点击一个复选框一样。
根据我的经验,Python中选项卡和空格的最佳设置是:
1
| :set tabstop=8 shiftwidth=4 softtabstop=4 expandtab shiftround |
说明:
由于你根本不会使用真正的制表符,我发现明白并将它们留在传统的8列宽度tabstop=8是很好的。您可以将此设置保留,因为它仍然是默认设置。
shiftwidth=4和softtabstop=4与expandtab一起使插入模式以及缩进命令(如>和<)具有一致的标签体验。它们确保您可以使用tab键缩进,但Vim将始终使用4个空格来实现缩进。
最后,shiftround是可选的:每当你落在某个奇数列上时,比如第11列,任何缩进操作都会转到下一个"tabstop"。缩进更多将转到第13列(过去第12列:第三个"tabstop"),并且outdenting将转到第9列(过去第8列:第二个"tabstop")
就像@elias说的那样,如果你想让这些设置永久设置在你的vimrc中:autocmd:
1
| autocmd FileType python setlocal ts=8 sw=4 sts=4 et sr |
-
不如填充.vimrc,最好使用文件类型配置文件,如~/.vim/ftplugin/py.vim,如Vim Faq中所述。
-
@mMontu这是个人喜好的问题,不是吗? 或者是否存在用户文件类型插件更好的客观原因? (顺便说一下,我想你想要链接第26.1节。)
-
第26.1节也有相关信息,但我链接到26.8,因为我认为答案是覆盖默认的filetype插件(在$VIMRUNTIME/ftplugin/python.vim中) - 我忘了在前一个注释的示例中添加../after/..目录。 在那一节中,Vim FAQ声明文件类型文件是一个更好的选择,我同意它允许更好的组织,但它可能归结为品味问题,正如你所说。
-
+1 @mMontu,我更喜欢将自定义分解为提供的vim目录结构而不是混乱vimrc。 对于理解vim更好一点也是一个很好的练习。
我只是用:
你可以使它只适用于Python:
1
| au FileType python setlocal tabstop=4 shiftwidth=4 expandtab |