我通过Vundle安装了vim-latex
,并且我试图禁用一些默认设置的烦人的映射。通过docs,我知道,例如,我可以使用以下命令取消映射FEM
:
call IUNMAP('FEM','tex')
但是当我键入时,出现错误E117: Unknown function: IUNMAP
。
我已通过在vim-latex
中包含Plugin 'LaTeX-Suite-aka-Vim-LaTeX'
将Vundle安装到vimrc
,并且我刚刚使用过PluginUpdate
命令来更新所有内容,并且没有错误,因此我应该拥有该软件包的最新版本。
我在这里想念东西吗?
实际上,您遇到的问题与where有关,而您正在从中获取vim-latex。
使用:
Plug 'LaTeX-Suite-aka-Vim-LaTeX'
您正在从here中获取它,您会注意到它自2010年以来就没有进行过更新。查看该存储库中的plugin/imaps.vim
文件,您会看到函数IMAP()
的定义,但是不适用于IUNMAP()
,它可能是在同步存储库的最后日期之后引入的...
改为使用此来源:
Plug 'vim-latex/vim-latex'
将从here获得此文件,这是此插件的官方维护位置。
如果您查看该源树中的plugin/imaps.vim
,您会注意到function! IUNMAP
已在其中定义。
更新到正确的插件位置应该可以为您解决此问题(以及最近十年来的许多修复!)
IMAP()
和IUNMAP()
函数仅由vim-latex插件加载。之后将处理vimrc。因此,您需要从可用的上下文中执行它们。
此外,为了使您的取消映射成功,您需要实际执行它。[[after创建映射,并且通常在设置文件类型时创建映射。
documentation提到这些覆盖规则应在特定文件中完成:[要注意的重要事项是,如果您想覆盖Latex-Suite创建的宏,而不仅仅是创建新的宏,则应将IMAP()
(或IUNMAP()
)调用放在脚本中,该脚本在Latex-Suite中的文件。一个好地方通常是
例如,可以使用删除映射~/.vim/after/ftplugin/
目录中的文件类型插件文件。 [...]
call IUNMAP('FEM', 'tex')
在~/.vim/after/ftplugin/tex_macros.vim
中。
文档中提到您应该在使用的文件类型之后使用ftplugin
中的文件。选中:set ft?
确认您的确是tex
,在这种情况下,您可以使用tex.vim
,tex_something.vim
(如建议的tex_macros.vim
)或tex/something.vim
(子目录。)