2017-07-14 41 views
2

创建Python文件块我要为大家介绍的新线路标签字符在vim的Python文件创建一个新的块。在新的生产线引进<Tab>在vim

当我写

if(a < 5): 

并按输入,光标应进来下一行用标签后如果在垂直取向从上面的线。这样

if(a < 5): 
    a = 5 

东西我已经配置我的.vimrc文件中这样

set nu 
set autoindent 
set tabstop=4 
syntax enable 
set showmatch 
colorscheme gruvbox 
set bg=dark 

"automatically creates a block after : 
autocmd FileType python inoremap :<CR> :<CR><Tab> 

注:
1)最后一行,我已经写在我的问题中提到的预期目的。
2) autoindent设置。
3)我不想使用任何插件。

问题,我面对:

当我按下输入:,除了标签,还创建了一个额外的空间,产生错误的压痕。

在此先感谢帮助

+0

人们通常希望在源代码中避免使用 char。为什么你想要它? – dlmeetei

+0

我只是想要完美的缩进。我用java代码,我使用缩进标签。只是旧习惯。 – Manya

+0

python ftplugin将处理缩进。你不需要映射 – dlmeetei

回答

3

您试图做到这一点的方式是艰难的。有一个文件类型插件和一个Python语法类型,它已经知道该怎么做。

filetype plugin indent on 

,不使用set autoindent。它不是很聪明,它只是复制上一行的缩进。这与你想要做的事情相反。

.py结尾的文件应该自动获得正确的设置。如果您需要强制当前的语法类型在缓冲区中,你可以做到这一点与

:set filetype=python 

如果您想使用标签代替空格,

" Globally 
set noexpandtab 

" Python only 
autocmd FileType python set noexpandtab 

不过,我会注意的是使用不推荐使用Python中的选项卡,并且违反已发布的最佳做法(请参阅PEP 8)。

最后我会提到“插件”只是一个Vim术语。所有这些默认都附带Vim,这不会创建第三方依赖关系。

+0

其实我不想使用任何插件。希望通过配置.vimrc文件自行完成。我应该在问题 – Manya

+0

中写下这个问题,谢谢@Dan Lowe。我知道了,并改变了我的配置,并像魅力一样工作。非常感谢。还有一个问题与上述问题松散相关。我可以在哪里了解更多关于配置.vimrc文件和获得vim知识的信息。并再次感谢。 :) – Manya

+0

@Manya Drew尼尔在http://vimcasts.org/和Practical Vim的书很好 - 你也可以看看https://vi.stackexchange.com/这是一个专门用于vi和vim的stackoverflow姐妹网站。另外Vim中的':help'是一个非常全面的文档资源。 –