13

CentOs 6 上的 Emacs 23.1.1 Ediff 2.81.2

在进行任何自定义之前,默认情况下,Ediff 会水平拆分窗口(一个在另一个之上)。

我希望它们并排,所以我尝试将以下几行添加到我的 .emacs

(setq ediff-split-window-function 'split-window-vertically)
(setq ediff-merge-split-window-function 'split-window-vertically)

这没有效果 - 窗口仍然水平分割。我还尝试使用 Ediff 的 Emacs 自定义界面来获得默认的垂直分割——同样的故事。

请注意,我在与两个垂直拆分的缓冲区进行比较时尝试了这一点。我还尝试了在缓冲区中没有打开文件的情况下,并要求 Ediff 比较两个文件 - 结果相同。

然后我尝试将 split-window-horizo​​ntally 指定为 ediff-split 和 ediff-merge 的拆分窗口函数。

(setq ediff-split-window-function 'split-window-horizontally)
(setq ediff-merge-split-window-function 'split-window-horizontally)

这导致窗口垂直拆分(彼此相邻)。当我注释掉这些行并使用 Emacs 自定义界面来设置这些选项时也是如此。

是的,我已经看到了这个问题,但我不想在全球范围内消除水平分割——我只想让 Ediff 默认这样做。

我是疯了还是有人改变了“水平”和“垂直”的含义(顺便说一下,我将“垂直”和“水平”的定义从我的 O'Reilly 书的副本中分离出来“学习 Gnu Emacs”)?

4

3 回答 3

12

我使用了 emacs 变量自定义,调用 withC-h v ediff-split-window-function来更改值。单击后将Save for future sessions以下内容写入我的.emacs

(custom-set-variables
...
 '(ediff-split-window-function (quote split-window-horizontally))
...)

它完全符合我的要求:将两个缓冲区并排放置。是的,emacs 使用与您的想法相反的水平/垂直。如果你再读一遍这个问题,你会看到解释,其他人也很困惑。

于 2012-03-21T13:30:01.323 回答
12

点击“|” 当您处于 ediff 模式并加载 2 个文件时,从水平切换到垂直。
“?” 提供了一些 ediff 帮助菜单。(我在使用 emacs 23.4+1-4 的 Debian Wheezy)

于 2013-12-09T18:02:18.050 回答
0

虽然它不能完全回答您的问题,但您也可以使用一个函数来指定是根据窗口尺寸垂直还是水平分割:

(setq ediff-split-window-function 'split-window-sensibly)

split-window-sensably 是内置的

于 2015-05-09T16:46:23.873 回答