Убедитесь, что при работе с разделенными окнами текущее активное окно Emacs всегда имеет ширину не менее 80 символов - PullRequest
4 голосов
/ 06 марта 2012

(Я использую слова "окно" и "фрейм" так же, как их использует руководство Emacs.)

Мне нравится разбивать мой кадр Emacs по вертикали, когда я работаю, потому что мне нравится видеть два буферабок о бок.Поскольку у меня маленький экран, и я предпочитаю размер шрифта больше обычного, ни одно из окон не достаточно велико, чтобы показывать мне даже 80 символов в строке.Когда я переключаюсь между окнами, я сталкиваюсь с необходимостью изменять их размеры, чтобы предотвратить перенос кода.

Есть ли способ, которым Emacs может автоматически сделать текущее активное окно шириной не менее 80 символов?Я хочу, чтобы всякий раз, когда я переключался на окно, Emacs изменял его размер таким образом, чтобы я мог с комфортом видеть мой код в одной строке.

Например, допустим, это оригинальный сплит:

     ____________________
    |          |         |
    |          |         |
    |          |         |
    |          |         |
    |          |         |
    |          |         |
    |          |         |
     --------------------

Теперь я перемещаю точку вставки в левое окно.Emacs должен изменить размер окна, чтобы установка выглядела следующим образом:

     ____________________
    |             |      |
    |             |      |
    |             |      |
    |insertion    |      |
    |point        |      |
    |             |      |
    |             |      |
     --------------------

Я закончил редактирование буфера в левом окне.Теперь я перемещаю свою точку вставки в правильное окно.Emacs должен изменить размер окна так, чтобы оно выглядело так:

     ____________________
    |       |           |
    |       |           |
    |       |           |
    |       |insertion  |
    |       |point      |
    |       |           |
    |       |           |
     --------------------

Я уверен, что видел какое-то elisp, которое делает именно это, но я не могу понять правильные заклинания, которые я должен вставить вПоле поиска Google.

1 Ответ

7 голосов
/ 06 марта 2012

Если вы используете other-window (по умолчанию привязанный к C-x o) для переключения между окнами, вы можете просто посоветовать его так:

(defadvice other-window (after other-window-now activate)
  (when (< (window-width) 80)
    (enlarge-window (- 80 (window-width)) t)))

Это автоматически увеличит окно на (80 - это столбцы текущей ширины), сделав его шириной 80 столбцов.

...