Khi tôi chỉnh sửa các tài liệu lớn, tôi muốn xem tôi đang ở đâu bằng cách xem phác thảo (không có nội dung) trong một bộ đệm riêng. Giống như khi bạn đọc một tệp PDF có TOC ở bên trái. (xem bên dưới)
Trong chế độ org, nó có thể mở rộng / thu gọn phác thảo. Nhưng có thể có một phác thảo tĩnh ở bên trái (hoặc phải) trong một bộ đệm riêng để khi bạn nhấp vào tiêu đề, bộ đệm khác di chuyển đến vị trí đó?
Kiểu như thế này nhưng cho chế độ org?
[Chỉnh sửa]
Các clone-indirect-buffer
rất gần với những gì tôi muốn. Phần còn thiếu của câu đố là nhảy đến cùng một vị trí khi nhấp vào tiêu đề / (hoặc bất kỳ điểm nào thực sự).
Đối với điều này, tôi đã cố gắng viết một số mã: Di chuyển đến bộ đệm nhân bản khác đến cùng một điểm? (vị trí đồng bộ của bộ đệm gián tiếp) (chế độ org)
Nhưng nó không hoạt động nếu nội dung bị sụp đổ. Nếu điều đó có thể được thực hiện để làm việc, thì bộ đệm nhân bản là một giải pháp hoàn chỉnh cho việc này.
[Giải pháp Edit2]
Mã trong liên kết ở trên và trong câu trả lời bên dưới kết hợp niceley để giải quyết việc nhảy qua lại.
;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
chức năng, ví dụ, nhưng nó dường như không tồn tại.
C-c C-x b
, hoặcorg-tree-to-indirect-buffer
.