7

GNU emacs用のfunc-menuに相当するものはありますか?xemacsにアクセスできるときにfunc-menuを使用しましたが、スピードバーやsr-speedbarよりもその動作を好みます。具体的には:

  • 現在のファイルの関数だけが表示されるのが好きです。

  • 関数リストは現在のフレームからポップアップすることができ、私が隠したかもしれない別のウィンドウではありません。

  • 現在の関数名がモード行に表示されます。

func-menuに近いGNUEmacsのパッケージはありますか?

4

3 に答える 3

8

imenuGNUEmacsの類似機能になります。

を参照してくださいC-hf imenu-add-menubar-index RET
サポート付きのモードのモードフックでそれを呼び出すことができますimenu

当然、elispがサポートされているので、簡単なデモを行います。

  • M-x find-library RET imenu RET
  • M-x imenu-add-menubar-index RET

次に、メニューバーに新しい「インデックス」項目が表示されます。C-<mouse3>

もちろん、M-x imenu RET(TAB補完を使用して)呼び出すだけのキーボードインターフェイスもありますが、 EmacsWikiidoにある統合を追加することを強くお勧めします*-マウスを使用するよりも一般的に高速なインターフェイスであることがわかります。

詳細については、を参照してください。C-hig (elisp) Imenu RET

構成については、を参照してください。M-x customize-group RET imenu RET

(*)機能を強化する他の多くの方法に加えて、使用したくない場合でもido、基本バージョンの動作を確認した後は、必ずそのWikiページを読んでください。

于 2012-05-31T11:21:46.173 に答える
3

func-menuこれはあなたが話しているXEmacsモードですか?現在のファイルの関数のリストが表示されます。

もしそうなら、Emacs開発ツールのコレクションであるCEDET(特にセマンティックコードパーサー)とEmacsコードブラウザであるECBを使用して、GNUEmacsの機能をほとんど複製できます。

  • [ECBメソッド]ウィンドウには、選択したソースコードバッファ内のすべてのシンボルが表示されます。これは、Emacsの意味での別個のウィンドウです。つまり、単一のバッファーを表示する編集領域であり、そのいくつかは単一のウィンドウマネージャーウィンドウ内に置くことができます。これはEmacsフレームではないため、カバーされません。
  • Semanticのstickyfunc-modeは、現在の関数をソースコードバッファの先頭の行に表示できます。GNUEmacs固有のヘッダー行機能を使用します。これは、モード行に関数名を表示することとはまったく同じではありませんが、十分に近い値です。

ECBにはCEDETが必要であり、どちらもXEmacsのパッケージマネージャーなしでインストールするのは難しい傾向があることに注意してください。

于 2012-01-20T21:15:25.867 に答える
0

よくわかりませんが、「バッファ内の関数へのジャンプ」はヒュームモードと呼ばれていると思いました。もしそうなら、ヒュームモードのアナログを検索すると、探しているものに焦点を合わせるのに役立つかもしれません。

XEmacsこれは、ヒュームモードについて言及しているマニュアルからの抜粋です。

"41.バッファ内の関数にジャンプします。

多くの関数を含むファイルがあるとします。このパッケージを使用すると、これらの機能に簡単にジャンプできます。現在のバッファ内の関数の名前は自動的にメニューバーメニューに配置され、関数名の1つを選択すると、ポイントがその関数に移動します。マークはマークリングに押し付けられるので、元の場所に簡単に戻ることができます。または、読み取り入力の完了を提供するミニバッファを介して、目的の関数の名前を入力することもできます。さらに、ポイントの前の関数の名前がオプションでモードラインに表示されます。

次のモードがサポートされています。

Ada、Assembly、BibTex、C ++、C、Dired、Ehdm、ELisp、FORTRAN、Ksh、Latex、Lelisp、Makefile、Maple、Modula2、Modula3、Outline、Objective-C、Pascal、Perl、Postscript、Prolog、PVS、Python、 SGML、Scheme、Tcl、Verilog、Manual、Ruby、JavaScript

このパッケージをインストールするには、初期化ファイルに以下を追加します。

(add-hook 'find-file-hooks 'fume-setup-buffer)

(add-hook 'Manual-mode-hook 'turn-on-fume-mode)"
于 2012-05-31T11:08:11.420 に答える