2012-04-08 6 views
1

http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/#disqus_threadにあるチュートリアルに従うことで、ロープとyasnippetを使用してemacsのpythonサポートをセットアップしました。 文字列変数a_str="Hello"を宣言しました。今私はa_strを入力します。プレス]タブでは、私は、ドロップダウン以前に取得したミニバッファEmacsのロープとヤニペット

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

に、次のメッセージが表示されますが、突然、これは動作を停止しました。これが起こっている理由は何ですか?

また、私はラインの意味

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

を知りたいのです が

答えて

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

ありがとう助けてください意味:文字列で記載の結合キーの内部表現を生成C-c <kp-multiply>その値を変数yas/trigger-keyに代入します。

<kp-multiply>は、一般的にキーパッド上*キーとなります。)

あなたはその後、キーバインディングでyas/trigger-keyを使用することができます。例えば:あなたのメインエラーについては

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

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

コメントスレッドの最後に、オートコンプリート0.2の変更が0.1を超えたために発生した同様のエラーについての議論がありました。私はチュートリアルの著者が自分のEmacs設定用のgitリポジトリにリンクしており、そこにはまだオートコンプリートのバージョン0.1を使用していることがわかります。

まず、各ライブラリのバージョンを確認することをおすすめします。チュートリアルでは使用しています:

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

ロープのバージョンは不明である、と12月のとして(非常に最新の開発版」としてのみ説明'08) "

また、gitリポジトリから直接バージョンを取得したい場合があります(特に、リポジトリのyasnippetのバージョンでは、バージョン0.2.2ではなく0と表示されるため)。 5.9)。

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

ここで役に立つかもしれない別のgitリポジトリだ、という失敗:

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

+0

は、しかし、私はCtrlキーを押しながらC *を行う場合、私はコードはあなたが尋ねたことをメッセージ「CC *が定義されていません」 – Kris

+0

注意を取得aboutは 'Cc 'を関数に束縛しません。変数の値を設定するだけです。 (Yasnippetは、ある時点でバインディングを作成するためにYasnippetが使用することを期待していますが、コードが存在するかどうかを調べる必要があります) – phils

+0

返信いただきありがとうございます。私は 'Symbolの関数定義はyasnippet-0.5.9を使ってvoid errorです.'を取り除くことができました。私は最新のバージョン0.6.1を使用していましたが、それはその問題を引き起こしていたと思います。しかし、私はタブキーがオートコンプリートで使用されていると思うので、yasnippetを使用してスニペットを挿入することができません。スニペットを挿入するために別のキーの組み合わせを使用する方法はありますか? – Kris