4

私はr-autoyasをEmacs23.3.1で動作させようとしています

yasnippetをインストールしましたが、それ自体で正常に動作します。例:C++モードの「for」の後のTABは、必要に応じて自動拡張されます。次に、r-autoyasを機能させました。githubリポジトリに記載されている手順に従いましたが、Rバッファーに組み込まれている関数でさえTABを展開できません。

rnorm(と入力してTabキーを押すと、関数のさまざまな引数を表示するミニバッファーが開きます。これはデフォルトの動作ですか?それとも、入力引数をデフォルトとして入力して、1つずつ変更する必要がありますか?

私はオンラインで検索して、他の誰かがこの問題に遭遇したかどうかを確認しました。あるフォーラムでは、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

yasnippet拡張を機能させるには、ESS/R用に独自のyasnippetを追加する必要があります。デフォルトではありません。

入力時に表示rnorm(<TAB>される動作はyasnippetとは関係ありません。これは、ESSがRコーディングを容易にするために提供する動作です。

つまり、R用に独自のスニペットを作成する必要があります。これはtext-mode/ess-mode、yasnippetが配置されているディレクトリの下で行う必要があります(ess-modeディレクトリを作成する必要があります)。

これが私のRスニペットの一部です。私はそれらをもっと使うと思っていましたが、実際にはsetGenericsetMethodスニペットしか使用していません...そしてそれらもすべての防弾ではありません。

于 2012-05-15T17:23:36.350 に答える