回答:
MotionのOrg Manualノードは、組み込みコマンドorg-goto
(デフォルトバインディング:)の簡潔な説明を提供します。このコマンドのC-c C-j
動作は、目的の効果を得るために簡単にカスタマイズできます。
C-h v org-goto-interface RET
org-goto
バッファーのアウトラインをインクリメンタルに検索するデフォルトの動作を無視しても構わない場合は、完了を介して見出しを選択するように切り替えることができます。
(setq org-goto-interface 'outline-path-completion)
ido
/ ivy
/ などの完了パッケージのユーザーはhelm
、ターゲットパス全体を一度に表示するために、おそらく次の設定を変更する必要があります。
(setq org-outline-path-complete-in-steps nil)
詳細については、こちらをご覧ください。
このアプローチには、(たとえば、- helm
特定の機能を使用するよりも)、デフォルトcompleting-read
にプラグインするすべての完了フレームワークで作業するという追加の利点がありますivy
。
補遺:
この回答で説明されているようにoutline-path-completion
、org-goto
コマンドへのインターフェイスを使用する場合、カスタマイズ可能な変数org-goto-max-level
は、提供する見出しの最大の深さを決定します。
編集:
私は有用な答えを持つ古い関連する質問を見つけました:https : //stackoverflow.com/q/15011703/3084001
明確化(Att Righのコメントによって促される):
org-goto-interface
認識されている2つの値のいずれかに設定しても、代替インターフェースを犠牲にすることにはなりません。org-goto
プレフィックス引数(C-u C-c C-j
またはC-u M-x org-goto RET
)を使用して呼び出すと、現在の補完の代替インターフェイスが自動的に選択されます。このようにして、org-goto-interface
最も頻繁に使用する可能性が高いインターフェイスに設定し、一時的に動作を切り替えたいときにプレフィックス引数を使用できます。これでもニーズに合わない場合は、org-goto
Att Righの例のように、いつでも独自のラッパーを作成できます。
outline-path-completion
うまく再生されないhelm
私の箱の上に( -それはできない、完全な過去1度押すことによって達成<TAB>
場合helm
:参照無効になっていますhelm-completing-read-handlers-alist
)
let
はあらゆる種類の一時的なバインディングに使用できます。この質問は、関連する設定/機能/パッケージに関するものです。インターフェイスの一時的な切り替えを実現するより一般的な方法はorg-goto
、プレフィックス引数で呼び出すことです。この回答にメモを追加します。
ivy
、リファイリング関連の設定を一時的にそのニーズに合わせて調整するため、でリファイリングしorg-refile-targets
、深さの設定が正しくありませんorg-goto
。残念ながら、私はhelm
現時点で機能を探求する立場にありません。おそらく別のユーザーが口を閉ざすことができますか?
worf
かcounsel-imenu
。
パッケージworfを使用しますが、その機能の1つのみをバインドします。
(use-package worf
:diminish worf-mode
:bind (:map org-mode-map ("C-c h" . worf-goto)))
worf-goto
ミニバッファ内のバッファ内の見出しのリストを提供します。これをフィルタリングできます。
パッケージはivyの作者によって作成されているため、ivyが好きならworfが好きかもしれません。
;; - "g" (`worf-goto'): select an outline in the current buffer, with
;; completion. It's very good when you want to search/navigate to
;; a heading by word or level. See https://github.com/abo-abo/lispy
;; for a package that uses this method to navigate Lisp code.
(defun worf-goto-action (x)
(with-ivy-window
(goto-char (cdr x))
(outline-show-children 1000)
(worf-more)))
(defun worf-goto ()
"Jump to a heading with completion."
(interactive)
(let ((cands (worf--goto-candidates)))
(cond ((eq worf-completion-method 'helm)
(require 'helm-multi-match)
(let (helm-update-blacklist-regexps
helm-candidate-number-limit)
(helm :sources
`((name . "Headings")
(candidates . ,cands)
(action . worf-goto-action)
(pattern-transformer . worf--pattern-transformer)))))
((eq worf-completion-method 'ivy)
(ivy-read "Heading: " cands
:action 'worf-goto-action)))))
counsel-imenu
補完はworfよりも優れていますが、レベル1の組織の見出しを検索できません。worfsはすべてのレベルを検索するため、これが私が探しているものだと思います。
org-imenu-depth
デフォルトの2より大きい値に設定しようとしましたか?
helm-org-rifleは特にいいと思います。また、imenuのソースを取得するものはすべてヘッダーを表示できます(例:Helm with imenu)。
helm-org-rifle
のコンテンツを検索することに注意してください。この動作を変更する方法は見つかりませんでした。すべてのヘッドラインを検索するが、ファジー検索を実際にサポートしないhelm-org-rifle
参照org-search-goto
。
helm-org-rifle
です。見出しだけを検索しません。これを行うために拡張することもできますhelm-org-in-buffer-headings
が、ヘルム自体になどが存在するため、そうする理由はほとんどありません。
目立った自己宣伝ですが、orgnavを試してみてください。これは、この目的のための私の種類のアルファ(ただし、私が積極的に使用している)プロジェクトです。
orgnavはコンテンツではなく見出しを検索し、検索の深さを変えることができ、ファイル全体ではなくサブツリーを検索できます(ただし、これは絞り込みでも実現できます)。
いくつかの機能のビデオを次に示します。https://asciinema.org/a/1r0fp33xgwh48lfgsh7mllw4u
おそらく、このパッケージのインスピレーションのhelm-org
一部でhelm
あるパッケージ(または、このパッケージのインスピレーションが制限であるパッケージ)helm-org-rifle
についても知っておく必要があります。また、他の投稿でも説明されています。
(ここでの回答の礼儀:https://www.reddit.com/r/emacs/comments/69mc6l/how_to_jump_directly_to_an_orgheadline/
)も潜在的に関心のあるworf-goto
の一環としての機能worf
キーバインドの異なるセットに対して適用する(ORGナビゲーションモードが見出しの前の「*」)。これはに非常によく似ていhelm-org
ます。
(defun my-org-goto () (let ((org-goto-interface 'outline-path-completion)) (org-goto)))