2012-04-07 4 views
4

は、私は、次のマークの付いたファイルがあるとし(あるいは、それはタグを呼び出す):Emacs:カスタムタグのリストを得る方法はありますか?それを介してナビゲートする方法はありますか?

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 

(in python)

だから私は、指定されたバッファ/ファイルに対してそのようなタグを付ける(またはマークする)。また、マウスやキーバインディング(table of contentsの機能に似た何かのもの)を使って、何らかの形でこのタグのナビゲーションを容易にする必要があります。rest-mode

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

ブックマークを使用している可能性がありますが、ブックマークはファイル固有のものではありません。これらはシステム固有のものです。それはブックマークリストにありますあなたはすべてのブックマークを持っています - 与えられたファイルのブックマークだけを取得したいと思っていましたが。

+0

私はECBを使用しませんが、etags/ctagsのTAGSファイルのような "タグ"ですか?あるいはECB特有のもの?前者の場合、私はあなたがそれをインデックスのコメントにすることができることを強く疑う。ブックマークの強化がありますが、ブックマークのワークフローを改善する方法があります。 – phils

+0

「タグ」の定義について混乱しています。これで、アウトラインマイナーモードがミックスに追加されました。それは間違いなく*用語の概要ではない。あなたの質問はあいまいです。 – phils

+0

@phils:そうです、私の編集はタグとは関係ありません。これは、カスタムマークを使用してナビゲートの問題を攻撃する(またはタグと呼ぶ)別の方法です。おそらく、私は質問を再定式化するべきでしょう。 – Adobe

答えて

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が付属しています。詳しい情報が必要な場合は、そこに記載されています。

+0

それは動作します!すごい!あなたはクールです! – Adobe

関連する問題