4

次のマークが付いたファイルがあるとします(またはタグと呼びます):

test.el:

;; =====
;; gnus:

some code here

;; ====
;; ECB:

some code here

;; =====
;; code:

some code here

(elisp で)

test.py:

# ========
# imports:

some code here

# =====
# defs:

some code here

# =====
# args:

some code here

(パイソンで)

したがって、特定のバッファ/ファイルに対してそのようなタグをリストする (またはマークと呼ぶ) バッファが必要です。table of contentsまた、マウスまたはキーバインド (の機能に似たもの) を使用して、何らかの方法でこのタグを介したナビゲーションを容易にする必要もありますrest-mode

いくつかの etags 関数を変更して、この問題を解決したかったのです。しかし、それを見つけることができませんでした (ECB は etags をバッファーにうまく表示するので、それは解決策になります - 私が望んでいたように)。

ブックマークを使用している他の解決策があるかもしれませんが、ブックマークはファイル固有ではありません。それらはシステム固有です。それはブックマークリストにあります。すべてのブックマークがありますが、指定されたファイルのブックマークのみを取得したかったのです。

4

1 に答える 1

4

Emacs Lisp のサンプル コードを使用して、emacs-lisp-mode のフックに追加できる次のコードで解決しました。これは、他の言語用に簡単に調整できるはずです。

(make-local-variable 'outline-regexp)
(setq outline-regexp ";; =+\n;; ")
(make-local-variable 'outline-heading-end-regexp)
(setq outline-heading-end-regexp ":\n")
(outline-minor-mode 1)

次のようなキーバインドを持つ標準のアウトライン モードを使用できるようになりました。

C-c @ C-p  -> prevous header
C-c @ C-n  -> next header

C-c @ C-t  -> hide code between headers
C-c @ C-a  -> show all the code between headers

ヘッダーを一時的に非表示にすると、バッファーのアウトラインが表示され、必要な場所に移動してから、コードが再び表示されます。

Python の場合は、;; を置き換えるだけです。正規表現で # を使用します。

outline-modeは Emacs に付属しており、さらに情報が必要な場合はそこに文書化されています。

于 2012-04-19T02:56:45.773 に答える