1

http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/#disqus_threadにあるチュートリアルに従って、rope と yasnippet を使用して emacs の Python サポートをセットアップします。文字列変数を宣言しましたa_str="Hello"。今、a_strと入力すると。タブを押すと、ミニバッファに次のメッセージが表示されます

Symbol's function definition is void: yas/snippet-table

以前はドロップダウンを取得していましたが、突然これが機能しなくなりました。これが起こっている理由は何ですか?

あと、セリフの意味も知りたいです

(setq yas/trigger-key (kbd "C-c <kp-multiply>"))

助けてください ありがとう

4

1 に答える 1

3
(setq yas/trigger-key (kbd "C-c <kp-multiply>"))

意味: string で記述されたキーバインディングの内部表現を生成し、C-c <kp-multiply>その値を variable に割り当てますyas/trigger-key

(<kp-multiply>通常、*キーパッドのキーになります。)

その後yas/trigger-key、キーバインディングで使用できます。例えば:

(local-set-key yas/trigger-key 'some-function)

主なエラーについては、何かが正しくロードされていない (yas/snippet-tableコードに存在するが、使用される前にロードされていない) か、Yasnippet とそれを使用しようとしている別のライブラリとの間に非互換性があります (この場合、おそらくオートコンプリートです)。

あなたがリンクしたコメント スレッドの一番下に、0.1 を超えるオートコンプリート 0.2 の変更によって引き起こされる同様のエラーについての議論が当時あったことがわかります。また、チュートリアルの作成者が自分の Emacs 構成用の git リポジトリにリンクしており、そこではバージョン 0.1 のオートコンプリートをまだ使用していることもわかりました。

そのため、最初に各ライブラリのバージョンを確認することをお勧めします。チュートリアルでは以下を使用します。

  • pymacs 0.23
  • yasnippet 0.5.9
  • オートコンプリート 0.1

Rope のバージョンは不明であり、「最新の開発バージョン (2008 年 12 月現在)」とのみ説明されています。

または、その git リポジトリからバージョンを直接取得することをお勧めします (特に、リポジトリ内の yasnippet のバージョンは、バージョン 0.5.9 ではなくバージョン 0.2.2 であると述べているため)。

それらで動作するようになった場合は、アップグレードを試すことができます (そして、より最近の動作する組み合わせを思いついた場合は、互換性のあるバージョンのセットをリストするスレッドにコメントを追加することもできます)。

それができない場合は、役に立つかもしれない別の git リポジトリを次に示します。

https://github.com/gabrielelanaro/emacs-for-python/

于 2012-04-08T02:30:25.317 に答える