我从一个窗口中可见的文件开始;然后我做了一个分割窗口,因此现在两个窗口显示相同的内容(在相同的缓冲点)。
现在我想通过2个窗口中只有1个窗口中的书签跳转到文件中的其他位置,但是当我执行书签跳转时,两个窗口都会在书签的位置结束。
单独留下另一个窗口的点!
我该如何配置?
由于
(在linux上运行,GNU Emacs 23.2.1; xemacs不这样做)
音符后:
我想要做的是在两个窗口上显示相同的文件,当一个窗口(w1)显示文件的一部分时,在另一个窗口(w2)中我跳转到不同的部分,使用各种书签,而w1的位置不会改变。
答案 0 :(得分:1)
可能有一个直接的答案,但总的来说,我发现在多个窗口中显示相同的缓冲区时,各种各样的事情都会变得不方便。我建议使用indirect buffers。运行M-x clone-indirect-buffer
以创建另一个缓冲区,或C-x 4 c
(clone-indirect-buffer-other-window
)以在另一个窗口中显示新缓冲区。间接缓冲区具有与原始缓冲区相同的内容,并且保存保存到相同的文件,但缓冲区具有
答案 1 :(得分:1)
这不能直接回答您的问题,但为您的问题提供了另一种解决方案。我使用bm.el作为可见书签。如果在两个窗口中显示相同的文件,则使用可见书签跳转只会修改当前缓冲区中的点。
我已使用以下内容配置了包:
(require 'bm)
(setq bm-highlight-style 'bm-highlight-only-fringe)
(global-set-key (kbd "<C-f2>") 'bm-toggle)
(global-set-key (kbd "<f2>") 'bm-next)
(global-set-key (kbd "<S-f2>") 'bm-previous)
答案 2 :(得分:1)
如果你使用带有书签+和自动书签(c-x p RET / C-x p n / C-x p p)的clone-indirect-buffer-other-window,它将按照你想要的方式工作。没有克隆,书签+对我来说似乎也有同样的问题。
答案 3 :(得分:0)
我使用此功能(我发誓,从互联网上复制)进行分割。使用这个,我认为你可以得到你的,但做的顺序是相反的。
1)使用书签打开另一个文件 2)拆开窗户。
;;----------------------------------------------------------------------------
;; When splitting window, show (other-buffer) in the new window
;;----------------------------------------------------------------------------
(defun split-window-func-with-other-buffer (split-function)
"dont just dumb split window, change buffer as well"
(lexical-let ((s-f split-function))
(lambda ()
(interactive)
(funcall s-f)
(set-window-buffer (next-window) (other-buffer)))))
(global-set-key "\C-x2"
(split-window-func-with-other-buffer 'split-window-vertically))
(global-set-key "\C-x3"
(split-window-func-with-other-buffer 'split-window-horizontally))
答案 4 :(得分:0)
试试Bookmark+。如你所描述的那样不改变其他窗口中的窗口点。
答案 5 :(得分:0)
回答自己的问题(几年后):
开始使用emacs 24(24.3.1),它“修复”了这种不受欢迎的行为。