如何覆盖我的.vimrc中的某些重映射以正确编辑Python

时间:2013-01-08 20:09:13

标签: python vim ftplugin

我编写CSS和Python代码,对于CSS,我有以下节省时间

inoremap :      :;<Left>

在我开始用Python编码之前,这很棒。我每次点击:时都会收到不受欢迎的; 我应该提一下,使用适当的缩进使Python编辑愉快我添加了

~/.vim/ftplugin/python.vim

python.vim包含以下内容

setlocal tabstop=4
setlocal softtabstop=4
setlocal shiftwidth=4
setlocal textwidth=80
setlocal smarttab
setlocal expandtab  

我会在python.vim中添加哪些代码来覆盖inoremap : :;<Left>中的.vimrc,这样当我按:时,我得到的只是一个:

4 个答案:

答案 0 :(得分:1)

所有特定于文件类型的设置都应该包含在:

~/.vim/after/ftplugin/<language>.vim

使用此设置,您可以“保证”在任何默认ftplugin之后干净地应用您的设置。

放置特定于Python的设置:

setlocal tabstop=4
setlocal softtabstop=4
setlocal shiftwidth=4
setlocal textwidth=80
setlocal smarttab
setlocal expandtab

进入此文件:

~/.vim/after/ftplugin/python.vim

以及您特定于CSS的映射:

inoremap <buffer> : :;<Left>

进入此文件:

~/.vim/after/ftplugin/css.vim

答案 1 :(得分:0)

您应该查看:help map-local

您可以将其放在python.vim

iunmap <buffer> :

或者,只将:映射放在css.vim

inoremap <buffer> : :;<Left>

答案 2 :(得分:0)

You can put this in your python.vim:
   iunmap :

如Daan所述,您还可以将映射放在css特定的vim文件中(例如〜/ .vim / syntax / css.vim)

答案 3 :(得分:0)

您可以使用.vimrc

中的自动命令执行此操作
autocmd FileType css inoremap <silent> <buffer> : :;<Left>

这只会在编辑文件时生效Vim知道是CSS(:set ft?会给你回CSS)

如果您不熟悉自动命令,建议使用Vim docs自动命令。