大きなドキュメントを編集するとき、アウトライン(コンテンツなし)を別のバッファーに表示することで、現在の場所を確認したいと思います。PDFファイルを読むときのように、左側に目次があります。(下記参照)
組織モードでは、アウトラインを展開/縮小することができます。しかし、別のバッファーの左(または右)に静的なアウトラインを設定して、見出しをクリックすると、他のバッファーがその位置に移動することは可能ですか?
ちょっとこのようなが、組織モードのために?
[編集]非常に近い私が何をしたいのです。パズルの欠けている部分は、見出し/(または実際に任意のポイント)をクリックしたときに同じ場所にジャンプすることです。clone-indirect-buffer
このために、私はいくつかのコードを書き込もうとしました:他のクローンされたバッファを同じポイントに移動しますか?(間接バッファの同期位置)(組織モード)
ただし、コンテンツが折りたたまれている場合は機能しません。これを機能させることができる場合、clone-inderect-bufferはこれに対する完全なソリューションです。
[Edit2 Solution]
上記のリンクと以下の回答のコードは、niceleyを組み合わせて、前後のジャンプを解決します。
;first call 'clone-indirect-buffer'. Then...
;This function works between buffer and it's clone.
(defun my/goto-same-spot-in-other-buffer ()
"Go to the same location in the other buffer. Useful for when you have cloned indirect buffers"
(interactive)
(let ((my/goto-current-point (point)))
(other-window 1)
(goto-char my/goto-current-point)
(when (invisible-p (point))
(org-reveal)))
)
;This function is a clone-to-buffer jump only:
; It does find the other buffer first thou instead of just jumping to the other
; window as does the function above.
(defun my/jump-to-point-and-show ()
"Switch to a cloned buffer's base buffer and move point to the
cursor position in the clone."
(interactive)
(let ((buf (buffer-base-buffer)))
(unless buf
(error "You need to be in a cloned buffer!"))
(let ((pos (point))
(win (car (get-buffer-window-list buf))))
(if win
(select-window win)
(other-window 1)
(switch-to-buffer buf))
(goto-char pos)
(when (invisible-p (point))
(show-branches)))))
(global-set-key (kbd "<s-mouse-1>") 'my/goto-same-spot-in-other-buffer)
(global-set-key (kbd "s-m") 'my/goto-same-spot-in-other-buffer)
(global-set-key (kbd "<C-s-mouse-1>") 'my/jump-to-point-and-show)
(global-set-key (kbd "C-s-m") 'my/jump-to-point-and-show)
org-sparse-tree-to-indirect-buffer
たとえば、関数が必要ですが、存在しないようです。
C-c C-x b
、またはorg-tree-to-indirect-buffer
。