2011-07-01 6 views
3

私はoutline-mode(主にorg-mode)をemacsで使用しており、grep-modeを使って検索しています。 私に迷惑をかけているのは、grepバッファ内のリンクに従うと、 折りたたまれたテキストが展開されません。それを自動化する方法はありますか?emacs概要モードでgrepに自動展開

同様の問題がgoto-lineが呼び出されたときに、この は しかし、goto-linegoto-charためdefadviceが マウスイベントのために動作しない、後藤ライン機能へのアドバイスを定義することによって達成することができる自動展開にあります。

もっと一般的には、私がemacsのリンクをクリックするとどうなりますか? 関数スタックを追跡しようとしましたが、emacsで使用されている イベントモードのためにソースを見つけることができません。

+1

問題を解決しました。私は** F1-K **のメッセージを見落としました。これは、マウスクリックイベントが** compile-goto-error **関数にマップされていることを示しています。 – charles

+0

「問題解決済み」発言を回答として追加し、他の人には気にしないようにしてください。 –

答えて

2

ご質問の最初の部分は、私が使用しているトリッキーです。コメントが続きます。

 
(setq org-directory "~/TOPDIR-OF-ORG-FILES") 

(global-set-key "\C-cog" 'fp-org-grep) 

(defun fp-org-grep (regexp) 
    (interactive "MOrg grep? ") 
    (if (string-equal regexp "") 
     (error "Rien à trouver!") 
    (require 'grep) 
    (unless grep-find-template 
     (grep-compute-defaults)) 
    (let ((grep-find-ignored-directories nil) 
      (grep-find-ignored-files nil)) 
     (rgrep regexp "*.org" org-directory)) 
    (setq fp-org-isearch-string regexp) 
    (save-excursion 
     (set-buffer "*grep*") 
     (setq next-error-function 'fp-org-grep-next-error)))) 

(defun fp-org-grep-next-error (n &optional reset) 
    (compilation-next-error-function n reset) 
    (org-reveal) 
    (setq isearch-string fp-org-isearch-string) 
    (when (or (null search-ring) 
      (not (string-equal (car search-ring) fp-org-isearch-string))) 
    (push fp-org-isearch-string search-ring))) 

(defvar fp-org-isearch-string "") 

スピードのために、私は私の議題に3組織のファイルを保持しますが、私のすべての組織のファイルを再帰的にgrepをするために、「C-C O G」コマンドを定義します。いつもの手段でエントリーに行くと、オルグの周囲のコンテキストが明らかになります。 「C-s」を押すと、検索したテキストを強調表示することもできます。

フランソワ

1

私はあなたが「問題が解決」と知っているが、あなたは主にあなたがなどの正規表現(またはTODOの状態に一致するアイテム、またはワークフローのまばらなツリーを表示することができますあなたはorg-sparse-treeをご覧くださいorg-modeC-c /)を使用している場合)。

関連する問題