Предотвратить переключение Emacs в буферное другое окно от изменения размера другого окна

Я часто разделяю окна в кадре, где одно намного меньше другого (обычно это делается с помощью C-u C-u C-x ^). Это делается для того, чтобы я мог видеть какой-то фрагмент кода в качестве справочного материала, занимаясь чем-то другим.

Проблема в следующем: когда я использую Cx 4 b для переключения на другой буфер (или Cx 4 f для открытия нового файла в нижнем окне), нижнее окно изменен до исходного размера в половину высоты кадра. Есть ли способ предотвратить это и сохранить меньший размер окна?


person Cristian    schedule 10.12.2009    source источник


Ответы (2)


Если вы оцените (setq even-window-heights nil) перед запуском C-x 4 f (или подобной команды), Emacs не будет пытаться сбалансировать высоту ваших окон. Вот документация для even-window-heights:

Если не nil, display-buffer попытается выровнять высоту окна.
В противном случае display-buffer оставит конфигурацию окна
в покое. Высота выравнивается только тогда, когда display-buffer выбирает окно
, которое появляется над или под выбранным окном.

Я рекомендую написать небольшую функцию elisp, которая устанавливает эту переменную в nil, а затем вызывает switch-to-buffer-other-window или find-file-other-window, так как это, вероятно, то, что вы захотите делать часто.

person Emerick Rogul    schedule 11.12.2009

C-x 4 b на самом деле не является навигационной командой. У вас все еще есть проблема, если вы C-x b или просто C-x o?

person Paul McMillan    schedule 10.12.2009
comment
Проблема в навигации. C-x b и C-x o работают нормально. Когда я хочу показать другой буфер (или открыть другой файл) в нижнем окне, размеры меняются. Отредактировал вопрос, чтобы попытаться сделать это более ясным. - person Cristian; 11.12.2009