Quando edito documentos grandes, gostaria de ver onde estou vendo o esboço (sem conteúdo) em um buffer separado. Como quando você lê um arquivo PDF, há um sumário à esquerda. (ver abaixo)
No modo organizacional, é possível expandir / recolher o contorno. Mas é possível ter um contorno estático à esquerda (ou à direita) em um buffer separado, para que, quando você clicar nos títulos, o outro buffer se mova para essa posição?
Tipo assim, mas para o modo org?
[Editar]
O clone-indirect-buffer
está muito perto do que eu quero. A peça que falta no quebra-cabeça é pular para o mesmo local ao clicar em um cabeçalho / (ou em qualquer outro ponto).
Por isso, tentei escrever algum código: Mover para outro buffer clonado no mesmo ponto? (posição de sincronização de buffers indiretos) (modo organizacional)
Mas não funciona se o conteúdo for recolhido. Se isso puder funcionar, o buffer de clonagem indereta é uma solução completa para isso.
[Edit2 Solution]
O código no link acima e na resposta abaixo combina niceley para resolver o salto para frente e para trás.
;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
função, por exemplo, mas parece não existir.
C-c C-x b
, ouorg-tree-to-indirect-buffer
.