6

Как избавиться от строки меню Emacs в окнах терминала?

Стандартный ответ поставить

(when (not (display-graphic-p))
  (menu-bar-mode -1))

в init.el Тем не менее, это решение не является хорошим, потому что все, что он делает, это удаляет строку меню после факта. Вы все еще можете увидеть это на долю секунды. Это очень раздражает.

Глядя на исходный код в startup.el я не вижу очевидного решения этой проблемы. Я думаю, что единственный способ - это использовать before-init-hook . Может быть, это может помочь?

(add-hook 'before-init-hook
          (lambda ()
            (setq emacs-basic-display t)))

Но этот хук запускается до того, как init.el и другие файлы инициализации будут оценены, так как его использовать?

2 ответа2

3

Я обнаружил, что это, кажется, зависит от размера окна терминала всех вещей. Я тестировал terminator и xterm и в обоих случаях увеличение размера окна останавливало отображение строки меню во время загрузки emacs . Пойди разберись. В частности, ширина терминала> = 88, кажется, останавливает появление буфера меню. Высота, кажется, не имеет значения. Поэтому вы можете изменить размер окна терминала по умолчанию, и это может решить вашу проблему.

Очевидно, что это не идеальное решение, и оно не поможет, если вы работаете с tty, а не с эмулятором терминала, но это может быть лучшее, что вы получите, не углубляясь в исходный код emacs который, я полагаю, вы не найдете стоит усилий, чтобы избавиться от такого незначительного раздражения.

1

Я сомневаюсь, что есть способ подавить это первоначально, по крайней мере, кратковременное появление, которое вы упоминаете. Вы можете попробовать настроить initial-frame-alist , но я сомневаюсь, что это будет иметь какое-либо влияние. Я пробовал emacs -nw -f menu-bar-mode , и это отключает строку меню, но опять же, сначала она появляется на мгновение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .