2016-04-08 6 views
3

Всякий раз, когда я делаю apropos, описываю-ключ или какую-либо другую функцию помощи в emacs, он отображает помощь в моем другом окне. Чтобы избавиться от него, я должен изменить окна/буферы, чтобы перейти туда, введите «q», а затем вернитесь в исходный рабочий буфер.emacs справочное окно emacs из исходного буфера

Есть ли способ, который я могу сделать это в коде каким-то образом? Я знаю, как сохранять-экскурсии, буферы переключения и т. Д., Но я не знаю, как отправить «q» в минибуфер/emacs, пока я закончил в другом буфере. Спасибо

+0

Буфер справки имеет 'help-window-select', как указано ниже. В общем, возможно, вас может заинтересовать пакет кандалов (https://github.com/wasamasa/shackle). – jpkotta

ответ

1

Вот мое решение этой проблемы. Я привязываю эту команду к C-c q:

+0

Интересное решение - вместо того, чтобы разговаривать с буфером с помощью «q», поговорите с Emacs и скажите «убейте всех этих парней». И расширяемый тоже, что приятно. Спасибо, что внесли свой код. – Kevin

3

Возможно, переменная help-window-select может быть именно тем, что вы хотите. Если вы установите его значение равным true (setq help-window-select t), тогда окно справки будет автоматически выбрано, когда вы откроете его с помощью одной из команд справки. Затем вы можете нажать q, чтобы выйти из него и вернуться в исходный буфер. Есть много других вариантов, поэтому вы также должны проверить их.

Для окна с окном или любого окна, которое использует display-buffer, вы можете использовать.

(add-to-list 'display-buffer-alist 
     '("*Apropos*" display-buffer-same-window)) 

display-buffer-same-window - один из многих вариантов; он открывает буфер в текущем окне. Другие возможные варианты можно увидеть, просмотрев документы в функции display-buffer.

+0

Благодарим вас за быстрый, точно ответный ответ! Мы на полпути. Установка переменной действительно решает проблему для описания-ключа, но не для дисплеев Apropos. Я проверил эквивалентные переменные apropos (описать-переменную apropos), но ни один из них не выглядел как выбор окна справки. Идеи? – Kevin

+0

Извините за задержку воспроизведения, я отредактировал свой ответ с некоторой информацией об буфере apropos. Я использую аналогичную команду для открытия оболочки в том же окне, что и я, а не в другом окне. Надеюсь, поможет. – Jules

+0

Спасибо Жюль. Думаю, лучше, если бы он покрыл мой текущий буфер, так как его легко отправить. Лучше, чем идти туда и введите q ... Еще раз спасибо. – Kevin

0

Я предлагаю положить (winner-mode 1) в вашем файле инициализации, а затем с помощью C-C< влево> вызвать winner-undo (при необходимости несколько раз), чтобы вернуться к предыдущей конфигурации окна.

+0

Да, спасибо за подсказку. У меня уже есть режим победителя. (Но, как ни странно, вряд ли когда-либо его использовать, так как старые привычки ctrl-x o сильно ...) Много волшебства буфера/окна, которое происходит под капотом в Emacs. Я не знаю, почему Apropos не считается окном справки - он отправляет то же самое (с q). Ну что ж. У меня есть что-то, что работает сейчас, и так далее. – Kevin

+0

Ну, 'apropos-mode' и' help-mode' - отличные основные режимы. Однако они оба получены из 'special-mode' (который обеспечивает эту привязку). – phils

+0

YMMV, но я могу только рекомендовать более привыкнуть к использованию 'winner-undo' (и, возможно, привязать его к немного более легкой последовательности клавиш, если это поможет). Я считаю это абсолютно бесценным, как обобщенное решение всех проблем, подобных этому, а также удобное для возврата изменений окон, которые я сделал намеренно. – phils

Смежные вопросы