Как ограничить имена буферов iswitch до 1 строки в минибуфере (поведение изменилось после обновления emacs 24.1 на osx)?
Когда я обновился до (vanilla) emacs 24.1 на OSX, использование iswitch для переключения буферов, похоже, ведет себя по-другому.
Когда я нажимаю ctrl-x b для переключения буферов, вместо того, чтобы ограничивать список буферов до 1 строки, он показывает каждый отдельный буфер, расширяя мини-буфер до нескольких строк, а затем постепенно удаляет буферы, когда я набираю имя буфера Я переключаюсь на.
Я нахожу, что строка состояния и мини-буфер увеличиваются и уменьшаются всякий раз, когда я переключаю буферы, отвлекающие визуально, поэтому я хочу восстановить предыдущее поведение, которое обрезает имена буферов, которые после 1 строки. Как мне это сделать?
2 ответа
Если вы хотите глобально ограничить число строк, которые использует минибуфер, одной строкой, это должно работать:
(setq max-mini-window-height 1)
Дополнительная информация из документации:
Переменная max-mini-window-height контролирует максимальную высоту для изменения размера окна минибуфера. Число с плавающей запятой задает часть высоты кадра; целое число указывает максимальное количество строк; nil означает, что размер окна минибуфера не изменяется автоматически. Значение по умолчанию составляет 0,25.
Однако, если вы просто хотите ограничить количество линий минибуфера, используемых iswitchb, документация для iswitchb-minibuffer-setup-hook предлагает:
Индивидуальная настройка мини-буфера для Iswitchb.
Этот хук запускается во время настройки минибуфера, если активен `iswitchb'. Например:
(add-hook 'iswitchb-minibuffer-setup-hook
(lambda ()
(set (make-local-variable 'max-mini-window-height) 3)))
при работе iswitchb минибуфер будет ограничен максимальной высотой в 3 строки.
Я не думаю, что это поведение изменилось между Emacs 23 и Emacs 24, поэтому я не уверен, почему вы видите это только сейчас. Может быть, у вас были некоторые настройки, чтобы получить такое поведение, и теперь оно не работает в Emacs 24? Если это так, пожалуйста, сообщите об этом, чтобы мы могли это исправить.
Также обратите внимание, что в Emacs 24 поведение переключения буфера по умолчанию (неiswitchb) очень близко к поведению iswitchb. Наиболее заметным отличием является отображение потенциальных завершений, которые вы также можете получить с M-x icomplete-mode
, что не влияет на реальное поведение, только на отображение, но также влияет на другие дополнения. Также icomplete-mode
пытается ограничить отображаемый список завершения одной строкой (в дополнение к фактическому содержимому минибуфера, так что вы все равно получите перенос строк, но не так).