функция ediff-split-window горизонтальная == вертикальная? - PullRequest
11 голосов
/ 14 марта 2012

Emacs 23.1.1 Ediff 2.81.2 в CentOs 6

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

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

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

Это не имело никакого эффекта - окна все еще были разделены по горизонтали.Я также попытался использовать интерфейс Emacs Customization для 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 для установки этих опций.

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

Я схожу с ума или кто-то поменял значение «горизонтальный» и «вертикальный» (и, кстати, яберу определение «вертикального» и «горизонтального» расщепления из моего экземпляра книги О'Рейли «Изучение Emacs Гну»)?

Ответы [ 3 ]

10 голосов
/ 09 декабря 2013

Удар "|" когда вы находитесь в режиме редактирования с двумя загруженными файлами, переключается с горизонтального на вертикальное.
"?" дает немного ediff справочного меню. (Я нахожусь на Debian Wheezy с emacs 23.4 + 1-4)

8 голосов
/ 21 марта 2012

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

0 голосов
/ 09 мая 2015

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

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

разделенное окно - это встроенный .

...