在我的vimrc中,我已经包含了一个脚本(例如,otherscript.vim,我需要将其包含在工作中),其中包含:
autocmd FileType php setlocal iskeyword+=$
我不想要这种行为。所以,稍后在vimrc中,我会说:
autocmd FileType php setlocal iskeyword-=$
(我也尝试使用set
代替setlocal
。)但是,当我打开一个php文件时,iskeyword仍然包含$符号。我正在使用vim 7.2。 ':verbose set iskeyword'的输出是
iskeyword=@,48-57,_,192-255,$
Last set from /path/to/otherscript.vim
':scriptnames'的输出是:
...
7: /usr/share/vim/vim72/ftplugin.vim
8: /home/yogeshwer/.vimrc
...
74: /path/to/otherscript.vim
...
有人可以帮助我如何将其他脚本所做的更改恢复为'iskeyword'吗?谢谢一堆。
答案 0 :(得分:6)
我喜欢在可以使用after
目录结构时避免使用autocmds。
$ mkdir -p ~/.vim/after/{ftplugin,syntax,indent}
$ echo 'setlocal iskeyword-=$' >> ~/.vim/after/ftplugin/php.vim
这会在用户特定的vim config文件夹中设置一个基本的after
目录。虽然~/.vim/ftplugin/$FILETYPE.vim
将用于代替vim的标准$ FILETYPE.vim文件,但after
目录中的文件将被执行,允许您覆盖或更改ftplugins的行为,语法定义和缩进命令。
作为向您展示这些工作原理的另一个示例,我将在此处包含部分本地after/syntax/python.vim
文件。我喜欢我的代码的所有“结构标点符号”,以便在我阅读时脱颖而出,所以我这样做:
syn match pythonParen /[()]/
syn match pythonBrack /[][]/
syn match pythonCurly /[{}]/
hi def link pythonParen Paren
hi def link pythonBrack Brack
hi def link pythonCurly Curly
我还有一个after/indent/php.vim
文件应该可以解决我在模板文件中切换进出<?php ?>
区域时遇到的缩进行为时遇到的一些烦人的缩进问题,但代码是一团糟,从来没有真正起作用,所以我不会在这里重现它。我提到它只是为了给你一个关于挂钩后可以做些什么的例子。