3

私はoutline-modeemacsで(主に組織モード)を使用しておりgrep-mode、検索に使用しています。私を悩ませているのは、grepバッファー内のリンクをたどると、折り畳まれたテキストが展開されないことです。それを自動化する方法はありますか?

同様の問題は、goto-lineが呼び出されたときに自動展開することです。これは goto-line 関数へのアドバイスを定義することで実現できますが、defadvicegoto-linegoto-charマウス イベントでは機能しません。

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

4

2 に答える 2

2

あなたの質問の最初の部分として、これが私が使うトリックです。コメントが続きます。

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

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

(defun fp-org-grep(regexp)
  (インタラクティブな「MOrggrep?」)
  (if(string-equal regexp "")
      (エラー「Rienàtrouver!」)
    ('grepが必要)
    (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)
    (保存エクスカーション
      (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(または(null search-ring)
            (not(string-equal(car search-ring)fp-org-isearch-string)))
    (fp-org-isearch-string search-ringをプッシュ)))

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

速度を上げるために、3つのOrgファイルのみをアジェンダに保持しますが、「Cc o g」コマンドを定義して、すべてのOrgファイルを再帰的にgrepします。通常の方法でエントリに移動すると、コンテキストを取り巻く組織が表示されます。「Cs」を押して、検索したテキストを強調表示することもできます。

フランソワ

于 2011-12-09T00:01:04.930 に答える
1

「問題は解決しました」とおっしゃいましたが、主に使用している場合は( ) をorg-mode参照してください。これにより、正規表現 (または TODO 状態、ワークフローなど) に一致するアイテムの疎なツリーを表示できます。org-sparse-treeC-c /

于 2011-07-03T00:57:13.447 に答える