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

时间:2012-03-14 15:42:41

标签: window split emacs-ediff

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界面设置这些选项时也是如此。

是的,我见过this question,但我不想在全球范围内消除水平分割 - 我只是希望Ediff默认执行此操作。

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

3 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:8)

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

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

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

答案 2 :(得分:0)

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

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

分裂窗口明智地是built-in