2012-03-14 1 views
10

Emacs 23.1.1 Ediff 2.81.2 on CentOs 6ediff-split-window-function horizontal == vertical?

Перед любой настройкой Ediff по умолчанию разбивает окна по горизонтали (один поверх другого).

Я хотел их бок о бок, так что я попытался добавить следующие строки в мой .emacs

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

Это не имело никакого эффекта - окна были еще разделены по горизонтали. Я также попробовал использовать интерфейс Emacs Customization для Ediff, чтобы по умолчанию вертикальный раскол - та же история.

Обратите внимание, что я попробовал это в сравнении с двумя буферами, которые были разделены по вертикали. Я также попробовал это, не открывая файлы в буферах, и попросил Ediff сравнить два файла - тот же результат.

Затем я попытался указать split-window-horizontally как функцию разделения окна как для ediff-split, так и для ediff-merge.

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

Это привело к тому, что окна были разделены вертикально (рядом друг с другом). Это также верно, когда я прокомментировал эти строки и использовал интерфейс настройки Emacs для настройки этих параметров.

И да, я видел this question, но я не хочу устранять горизонтальное разделение на глобальной основе. Я просто хочу, чтобы Ediff сделал это по умолчанию.

Я теряю сознание или кто-то переключил значение «горизонтальный» и «вертикальный» (и, кстати, я беру определение «вертикального» и «горизонтального» разделения из моей копии O «Книга Рейли« Изучение Гну Emacs »)?

+0

Split-window-horizontally означает разделение окна на два окна, которые расположены горизонтально. –

ответ

8

Я использовал настройку переменной 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 использует горизонтальную/вертикальную противоположность тому, что вы имели в виду. Если вы снова прочтете this question, вы увидите объяснение, другие тоже были смущены.

7

Попадание «|» когда вы находитесь в режиме ediff с двумя загруженными файлами переключателями от горизонтального до вертикального.
"?" дает небольшое меню помощи. (я на Debian свистящих с Emacs 23,4 + 1-4)

0

Хотя это не совсем ответить на вашу проблему, вы также можете использовать функцию, чтобы указать, следует ли разделить вертикально или горизонтально в зависимости от размеров окна:

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

сплит-окно-разумно built-in.

+0

Это не работает для меня. 'split-window-sensibly' принимает окно в качестве аргумента, а' split-window-horizontally' принимает размер. Это вызывает ошибки, когда Ediff пытается разбить окно. – PythonNut