问题 ediff-split-window-function horizo​​ntal == vertical?


Emacs 23.1.1在CentOs 6上的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 Customization界面默认获得垂直分割 - 同样的故事。

请注意,我尝试与两个垂直分割的缓冲区进行比较。我也尝试过没有在缓冲区中打开的文件,并要求Ediff比较两个文件 - 相同的结果。

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

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

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

是的,我见过 这个问题 但我不想在全球范围内消除水平分裂 - 我只是希望Ediff默认情况下这样做。

我是否会失去理智,或者有人改变了“水平”和“垂直”的含义(顺便说一下,我正在从我的O'Reilly书的副本中采用“垂直”和“横向”分裂的定义“学习Gnu Emacs“)?


9013
2018-03-14 15:42


起源

水平分割窗口意味着将窗口分成两个水平相邻的窗口。 - kevin cline


答案:


我使用emacs变量自定义,调用 C-h v ediff-split-window-function 改变价值。点击后 Save for future sessions 以下是写给我的 .emacs

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

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


8
2018-03-21 13:30





点击“|”当你处于ediff模式时,2个文件加载从水平到垂直的开关。
“?”给出一点ediff帮助菜单。 (我在Debian Wheezy上使用emacs 23.4 + 1-4)


8
2017-12-09 18:02





虽然它不能完全解决您的问题,但您还可以使用函数指定是根据窗口尺寸垂直拆分还是水平拆分:

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

分裂窗口明智的是 内建的


0
2018-05-09 16:46



这对我不起作用。 split-window-sensibly 以窗口为参数 split-window-horizontally 需要一个大小。当Ediff尝试拆分窗口时,这会导致错误。 - PythonNut