Открыть 'отменить дерево-визуализировать рядом с буфером, а не "по вертикали" - PullRequest
2 голосов
/ 29 августа 2011

Можно ли как-нибудь заставить отменить режим дерева отображать визуализацию в «горизонтальном» буфере (т.е. C-x 3 против C-x 2)?

What I want](![enter image description here

Ответы [ 2 ]

6 голосов
/ 10 августа 2014

В соответствии с предложением @ Tom1 я выбрал решение, применимое только к отмене дерева:

(defadvice undo-tree-visualize (around undo-tree-split-side-by-side activate)
  "Split undo-tree side-by-side"
  (let ((split-height-threshold nil)
        (split-width-threshold 0))
  ad-do-it))

2017-04-29 : defadvice теперь не рекомендуется в пользу advice-add. Обновленная версия решения выше будет иметь следующий вид:

(defun undo-tree-split-side-by-side (original-function &rest args)
  "Split undo-tree side-by-side"
  (let ((split-height-threshold nil)
        (split-width-threshold 0))
    (apply original-function args)))

(advice-add 'undo-tree-visualize :around #'undo-tree-split-side-by-side)
1 голос
/ 29 августа 2011

Пакет undo-tree использует стандартные функции отображения буфера Emacs для отображения окна дерева (в отличие от конкретной функции).Чтобы управлять тем, как Emacs разделяет окна, вы можете настроить переменные split-window-preferred-function, split-height-threshold и split-width-threshold.Также ознакомьтесь с документацией для функции split-window-sensibly.

Если вы в целом согласны с Emacs, предпочитая параллельные окна верхним и нижним, поместите этот код в файл инициализации:1008 *

(setq split-height-threshold 0)

(Если вам нужны параллельные окна только для undo-tree-visualize, история немного сложнее.)

...