4

我正在尝试让 r-autoyas 在 Emacs 23.3.1 上工作

我已经安装了 yasnippet,它自己运行良好。例如:在 C++ 模式中,“for”之后的 TAB 会自动扩展。然后我继续让 r-autoyas 工作。我已按照 github 存储库中给出的说明进行操作,但无法让 TAB 扩展甚至是 R 缓冲区中的内置函数。

如果我输入 rnorm( 然后按 TAB 键,会打开一个小缓冲区,向我显示函数的各种参数。这是默认行为吗?还是应该将输入参数填充为默认值并让我一一更改?

我在网上搜索,看看有没有其他人遇到过这个问题。在一个论坛中,有人提到这可能是因为 Emacs 中的自动完成功能。

我的 init.el 文件中有以下几行,这些行在说明中给出:

(需要'r-autoyas)

(add-hook 'ess-mode-hook 'r-autoyas-ess-activate)

(add-hook 'ess-mode 'yas/minor-mode-on)

4

1 回答 1

2

您需要为 ESS/R 添加自己的 yasnippet,以使任何 yasnippet 扩展正常工作。默认情况下没有。

您在键入时看到的行为rnorm(<TAB>与 yasnippet 无关,这是 ESS 为使您的 R 编码生活更轻松而提供的行为。

所以 - 您必须为 R 创建自己的片段。您需要在text-mode/ess-modeyasnippets 所在的目录下执行此操作(您必须创建ess-mode目录)。

这是我的一些 R 片段。我想我会更多地使用它们,但我只真正使用过setGenericsetMethod片段......而且这些也不是所有的防弹。

于 2012-05-15T17:23:36.350 回答