【问题标题】:VIM latex-suite inserts macro code instead of executing macrosVIM latex-suite 插入宏代码而不是执行宏
【发布时间】:2010-07-16 16:52:21
【问题描述】:

我有一个问题困扰了我很长一段时间,但我找不到解决方案。

我想使用可以按<C-j> 并且光标移动到下一个占位符的功能。 这适用于常规文件,但是当我编辑 .tex 文件(即启用了 latex-suite)时,会插入:

\right=IMAP_Jumpfunc('', 0)

而不是真正的跳跃(我认为这是通过上面的映射以某种方式完成的)。

常规映射没有问题(我让自己像这样:map rhs lhs),但它不适用于任何乳胶套件宏。其他示例:如果我插入图形(通过菜单),它只是在文本中插入以下内容:

\right=Tex_DoEnvironment(``figure'')

抱歉,我自己无法解决这个问题,这对于有经验的用户来说可能是微不足道的。但是我周围没有人可以问。

【问题讨论】:

  • 我认为你的问题失去了一些背景,确保你用反引号括起来类似 html 的符号。
  • 对不起,我不明白你的意思。什么丢失了上下文?在这种情况下,用类似 html 的符号写的是什么?
  • 我为你添加了。您需要将 <things in angle brackets> 括在反引号中,以便它们不会被 Markdown 解析器解释为 HTML(然后由于它们不在白名单上而不会显示)。
  • 干杯! (...显然我必须写超过 8 个字符才能被 SO 允许评论...)

标签: vim latex


【解决方案1】:

看起来您在调用函数之前忘记了<c-r>=。

编辑:我想我明白了。安装 IMAPS 后,它会迅速寄生于我们所有的映射。您必须使用 IMAP() 来定义您自己的映射。我had to do it in my bracketing-system 是为了对 IMAP/LaTeX 套件的存在具有鲁棒性。

【讨论】:

  • 是的,也许是这样。 imaps.vim 中肯定有一些条目包含<c-r>= 仍然,我没有编辑任何东西。如果我理解正确,latex-suite 应该调用 IMAP_JumpForward 宏,但我不知道它在哪里定义了这个映射。
【解决方案2】:

啊,我发现了错误!

我已经定义了一个这样的键映射:

:imap <C-r> \right

(用于添加到乳胶中的括号)。然后由预定义的映射调用...

真是个坑

经验教训:总是注释掉整个或部分设置文件,然后看看事情是否开始工作。

【讨论】:

  • 不要忘记:“永远不要使用 :map,总是喜欢 :noremap -- 除非需要“递归”映射”
  • 对,我想过。但是:noremap 不是必须放在 IMAP 文件中的预定义映射中。因为我尝试将它放在我的 imap 上&lt;C-r&gt; 并且仍然搞砸了映射。我不想乱用默认值...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
  • 2015-07-22
  • 2018-08-10
相关资源
最近更新 更多