Vim无法识别来自vim-latex的某些命令

问题描述 投票:3回答:2

我通过Vundle安装了vim-latex,并且我试图禁用一些默认设置的烦人的映射。通过docs,我知道,例如,我可以使用以下命令取消映射FEM

call IUNMAP('FEM','tex')

但是当我键入时,出现错误E117: Unknown function: IUNMAP

我已通过在vim-latex中包含Plugin 'LaTeX-Suite-aka-Vim-LaTeX'将Vundle安装到vimrc,并且我刚刚使用过PluginUpdate命令来更新所有内容,并且没有错误,因此我应该拥有该软件包的最新版本。

我在这里想念东西吗?

vim latex-suite
2个回答
1
投票

实际上,您遇到的问题与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已在其中定义。

更新到正确的插件位置应该可以为您解决此问题(以及最近十年来的许多修复!)


0
投票

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.vimtex_something.vim(如建议的tex_macros.vim)或tex/something.vim(子目录。)

© www.soinside.com 2019 - 2024. All rights reserved.