在此tutorial中配置了许多设置,因此Vim
与Python
配合得很好。我只想在Python文件中使用一些设置,因为我还将使用编辑器编辑大量的sql文件。
这是创建Python特定设置的正确方法吗?
创建文件python.vim
并在以下目录中找到它:
M:\vimfiles\after\ftplugin\
将以下内容添加到文件中:
setlocal tw=79 setlocal colorcolumn=80 setlocal highlight Colorcolumn ctermbg=233
我需要使用setlocal
还是set
足够? setlocal highlight
语法正确吗?
答案 0 :(得分:3)
你大部分都是对的。 ~/.vim/after/ftplugin/python.vim
的使用仅限于您要否决的默认ftplugin/python.vim
文件中的设置,但也可以将其他与Python相关的内容放入其中。如果失控,你可以把东西拆分成例如~/.vim/ftplugin/python_tools.vim
或.../python/mappings.vim
(请参阅:help ftplugin-name
)。
是的,你需要使用:setlocal
,否则你的设置会泄漏到从Python缓冲区打开的其他缓冲区。
'colorcolumn'
设置为窗口 -local,而非缓冲区 -local。 Filetype插件应该更改缓冲区设置(因为文件类型与缓冲区相关联,并且窗口可以在其生命周期中显示不同的缓冲区)。因此,当您在同一窗口中编辑Java文件时,可能会出现颜色列将持续存在的情况。您需要设置精心设计的autocmds以使其完全正常工作,但根据您的工作流程,您可能永远不会受此影响,或者只是不要打扰。
:setlocal highlight Colorcolumn ctermbg=233
突出显示是全球性的;你不能简单地加上setlocal
前缀,这是行不通的!只需在:highlight
或配色方案中使用~/.vimrc
定义一次颜色,就足够了。更改每种文件类型的颜色将再次要求autocmds完全正常工作。
答案 1 :(得分:2)
我将特定于Python的设置存储在$HOME/.vim/ftplugin/python.vim
中,因为我不会与$VIMRUNTIME/ftplugin/python.vim
冲突。如果你想要推翻你的Vim发行版设置的ftplugins,那么$HOME/.vim/after/ftplugin/python.vim
就是你想要的,因为它是后来读的。
setlocal
将为特定缓冲区设置变量。这意味着如果您在同一会话中打开c文件,它将不会继承这些设置。我建议使用setlocal
。