4

我从一个窗口中可见的文件开始;然后我做了一个拆分窗口,因此现在两个窗口都显示相同的内容(在相同的缓冲点)。

现在我想通过 2 个窗口中的 1 个窗口中的书签跳转到文件中的不同位置,但是当我执行书签跳转时,两个窗口最终都在书签的位置。

离开另一个窗口的点!

我该如何配置?

谢谢

(在 linux 上运行,GNU Emacs 23.2.1;xemacs 不这样做)


后注:

我想做的是在两个窗口上显示相同的文件,当一个窗口(w1)显示文件的一部分时,在另一个窗口(w2)中,我使用各种书签跳转到不同的部分,而 w1 的位置不变。

4

6 回答 6

1

可能有一个直接的答案,但总的来说,我发现在多个窗口中显示相同的缓冲区时,各种事情都会变得不方便。我建议使用间接缓冲区。运行M-x clone-indirect-buffer以创建另一个缓冲区,或C-x 4 c( clone-indirect-buffer-other-window) 在另一个窗口中也显示新缓冲区。间接缓冲区与原始缓冲区具有相同的内容,并且保存保存到相同的文件,但缓冲区具有

  • 独立点、标记、标记;
  • 独立模式(以及更普遍的独立局部变量);
  • 独立视图(缩小、隐藏文本、面孔等)。
于 2011-06-01T21:17:23.877 回答
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)
于 2011-06-02T04:08:40.453 回答
1

如果您将 clone-indirect-buffer-other-window 与书签 + 和自动命名的书签 (Cx p RET / Cx pn / Cx pp) 一起使用,它将按照您的意愿工作。没有克隆,书签+对我来说似乎有同样的问题。

于 2012-07-23T22:26:13.373 回答
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))
于 2011-06-02T18:37:45.567 回答
0

试试书签+。正如您所描述的,它不会更改其他窗口中的窗口点。

于 2011-11-02T16:06:15.600 回答
0

回答自己的问题(几年后):

开始使用 emacs 24 (24.3.1),它“修复”了这种不需要的行为。

于 2014-02-25T19:02:20.427 回答