9

私はPythonの通訳の必要性のすべてのために、しばらくの間bpythonを使用しています。特に、なじみのない新しいライブラリや、多数の機能を備えたライブラリを使用している場合は、これは楽しいことです。いずれにせよ、私が行っていることと一緒にbpythonインタープリターを実行するのは良いことですが、オートコンプリートのような機能と、bpythonが実行しているときのようにパラメーターの説明の両方があればさらに良いでしょ。 Emacsでコードを編集します。私は完全に夢中ですか?誰かがこれを行う方法についてのアイデアを持っていますか?

ありがとう、ブラッドリーパワーズ

4

1 に答える 1

10

あなたは完全に頭がおかしいわけではありません。

python-modeと統合しeldoc-modeて、ポイントで呼び出している関数の引数仕様を表示できます。M-x eldoc-modePython ファイルを使用しているときにオンにするだけで、動作を開始するはずです。関数を直接検査するために下位の python バッファと通信するため、常にかなり正確である必要があります。emacs 起動ファイルで、すべての新しいpython-modeバッファに対して自動的にオンにすることができます。(add-hook 'python-mode-hook '(lambda () (eldoc-mode 1)) t)さて、この時点で、私は通常の Python プログラミングを行っていないことを言わなければなりません。ソースコードを数分間調べてみたところ、すべてが整っているように見えますが、下位プロセスで実行されるコードは空の文字列を返すだけです。おそらく、これは私のセットアップの問題か、間違ったソース ファイルを読み込んでいる可能性があります。言うのが難しい。

Emacs は、いくつかの異なるタイプの展開/オートコンプリートを提供します。デフォルトでは、 を押すことでアクセスできdabbrev-expandますM-/。これはかなり単純な補完形式です。たまたま編集した古いファイルで動作することを意図しています。より洗練されたのは ですがhippie-expand、それでも python 固有のことは何もしません。hippie-expandドキュメントには、正確な補完のためにと統合できると書かれていますが、これは嘘かもしれません。私はそれがどのように機能するか理解できませんでした。少し調べてみると、これに関連するいくつかのソリューションが示されていますが、それらはすべて に依存しているようですpymacs。たくさんの python プログラミングをする予定で、まだかなり複雑な emacs をセットアップしていない場合は、おそらくemacs-for-python をインストールすることから始めるでしょう。. それはかなり完全なセットアップのように見え、ライブ警告/エラー検出があるとさえ主張しています.

他の人が自分自身を助けるのを助けるという精神で、私がこのすべての情報にどのようにたどり着いたかを指摘したいと思います. 私の最初のステップは、でファイルを開くことでしたpython-mode。実際に使用できる Python コードがなかったので、スクラッチ バッファーに移動して、それを Python バッファー ( M-x python-mode) にしました。次に、この奇妙な新しいモード ( ) について助けを求め、C-h m何ができるかを確認しました。その作者は親切にもモード​​ができることの簡単な要約を書いてくれましeldoc-modeた. そこからソースコードを見始めました。たとえば、eldoc-mode と統合するには、次の関数を定義します。outline-modehippie-expandpython-eldoc-functionそして、それを eldoc モジュールに渡して、python バッファで使用します。そのコードを読むと、下位バッファなどとどのように相互作用するかがわかります。

これがいくつか役立つことを願っています。

于 2011-10-03T10:17:02.210 に答える