Я начал кодирование на 30-дюймовом мониторе, и мне интересно, можно ли переместить минибуфер в верхнюю часть экрана в emacs? поисковые запросы Google ничего не отображают.
Приветствия Nimai Etheridge
Я начал кодирование на 30-дюймовом мониторе, и мне интересно, можно ли переместить минибуфер в верхнюю часть экрана в emacs? поисковые запросы Google ничего не отображают.
Приветствия Nimai Etheridge
Посмотрите документацию для default-minibuffer-frame
и initial-frame-alist
vars. Похоже, что у вас может быть отдельный кадр для вашего минибуфера (который вы могли бы позиционировать в верхней части экрана), а затем генерировать безмасляные фреймы, которые его используют.
Обратите внимание, что в initial-frame-alist
указано, что "Если значение вызывает фрейм без минибуфера, и вы не создали фрейм минибуфера самостоятельно, кадр минибуфера создается в соответствии с minibuffer-frame-alist
", который звучит как именно то, что потребуется.
Существуют способы сохранения и восстановления конфигураций фреймов, поэтому, если это сработало, вы, возможно, сможете автоматически создать макет при запуске emacs.
Edit:
Очень простой пример/доказательство концепции ниже для использования этой компоновки кадра. Кадр минибуфера не может быть удален до тех пор, пока используемые им рамки не будут удалены. Разумеется, вы столкнулись с проблемами, когда делаете такие вещи, как максимизация рамки редактора, поэтому, несомненно, будет какая-то работа, чтобы попытаться сделать эту систему более плавным.
(setq default-minibuffer-frame
(make-frame
'((name . "minibuffer")
(width . 80)
(height . 1)
(minibuffer . only)
(top . 0)
(left . 0)
)))
(setq new-frame
(make-frame
'((name . "editor")
(width . 80)
(height . 30)
(minibuffer . nil)
(top . 50)
(left . 0)
)))
Естественно, вы также можете комбинировать это с методом scottfrazer перемещения модели в верхнюю часть.
Это можно было бы обработать в window-setup-hook
?
Вы также должны посмотреть на встроенные библиотеки frame.el и dframe.el. Такие функции, как dframe-reposition-frame
, могут обеспечить удобный способ привязки рамки минибуфера к верхней части активного кадра редактирования.
Переменная minibuffer-auto-raise
также может быть сконфигурирована так, чтобы поднимать кадр минибуфера всякий раз, когда активируется минибуфер, что может уменьшить необходимость видеть его в остальное время.
Я уверен, что вы не можете перенести сам минибуфер, но вы можете сортировать строку, чтобы линия режима была сверху:
(setq-default header-line-format mode-line-format) ; Copy mode-line
(setq-default mode-line-format nil) ; Remove mode-line
Это переопределит такие вещи, как "Info", которые используют строку заголовка, но, вероятно, это будет так близко, что вы получите без взлома источника C.
Используйте автономный фрейм минибуфера. Это показывает, как:
http://www.emacswiki.org/emacs/Dedicated_Minibuffer_Frame
http://www.emacswiki.org/emacs/oneonone.el
Посмотрите на этот код, чтобы получить представление или просто использовать его напрямую. Вам нужно только настроить настройки позиции кадра минибуфера:
1on1-minibuffer-frame-left
- Положение левого края рамки минибуфера, в пикселях.
1on1-minibuffer-frame-top/bottom
- Положение верхнего (или нижнего) кадра минибуфера в пикселях.