有没有办法让Ediff不在外部窗口中打开它的导航界面?

Rob*_*Rob 30 emacs

没有长时间使用Emacs(v23,windows)并且刚刚发现M-x ediff.太棒了.虽然我不想热衷于它在一个单独的框架/窗口中打开它的帮助/导航,这意味着如果我失去对该窗口的焦点,单键快捷键不起作用.

例如,当我按下?以展开窗口时,它会移动到当前窗口的顶部,因此我必须拿起鼠标并将其移动到另一个屏幕.然后,如果我将焦点丢失到该窗口并按p/ n/ j或任何其他键来处理diff,它会将其插入到我的文档中.所以我必须撤消,抓住鼠标,聚焦到其他窗口,然后重复.

有没有办法配置这些选项以显示拆分?

Dav*_*ski 31

我不知道该怎么做,但通常很容易用Emacs学习.首先我询问了ediff自定义:

M-x customize-apropos
ediff
Run Code Online (Sandbox Code Playgroud)

我看到有一种称为Ediff Window Setup Function的东西,它取值Multi Frame,Single FrameOther Function.我被设置为多帧并将其更改为单帧并将其保存以供将来的会话使用.还有瞧!正如他们在某处说的那样.


sts*_*uad 22

只是:

 (setq ediff-window-setup-function 'ediff-setup-windows-plain)
Run Code Online (Sandbox Code Playgroud)

Mx describe-variable ediff-window-setup-function将进一步启发你.

作为参考,我的ediff定制非常简单:

(if (locate-library "ediff")
    (progn
      (autoload 'ediff-files "ediff")
      (autoload 'ediff-buffers "ediff")

       (eval-after-load "ediff" '(progn
              (message "doing ediff customisation")
              (setq diff-switches               "-u"
                ediff-custom-diff-options   "-U3"
                ediff-split-window-function 'split-window-horizontally
                ediff-window-setup-function 'ediff-setup-windows-plain)

              (add-hook 'ediff-startup-hook 'ediff-toggle-wide-display)
              (add-hook 'ediff-cleanup-hook 'ediff-toggle-wide-display)
              (add-hook 'ediff-suspend-hook 'ediff-toggle-wide-display)))))
Run Code Online (Sandbox Code Playgroud)


Tör*_*bor 15

从Ediff用户手册中的窗口和框架配置一章:

以下变量控制窗口的设置方式:

ediff-window-setup-function

多帧设置由该ediff-setup-windows-multiframe 功能完成,这是窗口显示的默认设置.普通设置是一个所有窗口总是在一个帧 ediff-setup-windows-plain中的设置,这是非窗口显示(或在xterm窗口中)的默认设置.实际上,在Emacs下,您可以ediff-toggle-multiframe 使用菜单栏的Minibuffer 执行命令,在这两个设置之间自由切换.


kjf*_*tch 7

(custom-set-variables    
  ...
 '(ediff-window-setup-function (quote ediff-setup-windows-plain))
  ...)
Run Code Online (Sandbox Code Playgroud)

并不是说你会以这种方式设置变量,但它可以让你知道这些事情:

  • 你感兴趣的变量是 ediff-window-setup-function
  • 需要设置的值是 ediff-setup-windows-plain
  • 您可以从自定义配置变量: M-x customize-group RET ediff-window

    Ediff窗口设置功能:菜单单帧