启用 vim 文件类型插件

启用 vim 文件类型插件

在我的 .vimrc 文件中我有这一行..

filetype plugin indent on

然后~/.vim/ftplugin/py.vimrc(我也尝试将其保存为 .vim 文件)我复制并粘贴一个符合 Python 标准的 vimrc 文件并启用了其中的所有建议设置(取消注释)。当我创建并打开 test.py 文件并执行类似制表符的操作时,它会变成 8 个空格而不是 4 个。

不确定出了什么问题。

答案1

我会替换

au BufRead,BufNewFile *.py,*pyw set shiftwidth=4
au BufRead,BufNewFile *.py,*.pyw set expandtab
fu Select_c_style()
    if search('^\t', 'n', 150)
        set shiftwidth=8
        set noexpandtab
    el 
        set shiftwidth=4
        set expandtab
    en
endf

" indenting
set cindent
set autoindent
set shiftwidth=4
set softtabstop=4
set tabstop=4
set expandtab
set backspace=indent,eol,start

因为不清楚该Select_c_style()函数是否被调用或者引用的代码是否足够。

是的,我的第二个 .vimrc 摘录几乎阻止您在没有明确的情况下在任何地方使用制表符Ctrl-V Tab,但在大多数 Unixy 情况下,文字制表符无论如何都只是一种刺激。(并且发布带有 vim 缩写的 .vimrc 文件的 Pythonistas 应该被迫使用记事本,但这是另一个问题;)

答案2

简短的回答是,您应该将该文件放在 ~/.vim/plugin 目录中,而不是 ~/.vim/ftplugin 目录中。如果这样做,文件的基本名称是什么就无关紧要了,但后缀必须是“.vim”。

根据文件的标题,它可以随时被执行,并且不会影响除 Python 文件之外的任何文件。因此,将文件放在 ~/.vim/plugin 目录中是安全的,每次启动 Vim 时都会执行该文件。

有三个原因导致将 py.vimrc 放在 ~/.vim/ftplugin 目录中不起作用。首先,后缀必须是“.vim”。其次,文件的基本名称必须与 Vim 的文件类型名称相同。对于 Python,文件类型是“python”。因此,Python 的文件类型插件的名称必须是“python.vim”。第三个原因是,该文件中的自动命令是在文件被加载时读取的,也就是当您打开 Python 源文件时(如果其他一切都正确)。然后它们的命令就可以在下一个打开 Python 文件时。

最后,不要将“tabstop”设置更改为 4。即使您使用 4 个缩进,也请将“shiftwidth”设置为 4,并将“softtabstop”设置为 4,但将“tabstop”保留为 8。原因是,上次我检查时,Python 解释器假定制表位为 8。如果您小心谨慎并始终如一,则可以使用其他“tabstop”值,但我认为这是有风险的。

答案3

您正在设置吗filetype plugin on?您可能需要这样做,而不仅仅是filetype plugin indent on

相关内容