Переміщення лінії режиму та мінібуфера до вершини


13

Чи є спосіб перенести лінію режиму та мінібуфер знизу до верхньої частини екрана?

Мінібуфер охоплений попереднім питанням Як відобразити вміст мінібуфера посередині кадру emacs? , тому це питання насамперед стосується режиму режиму.

Щойно я скинув ноутбук і тріщив екран, тому не видно багато в нижньому ряду.


Під "рядком стану" ви маєте на увазі лінію режиму чи мінібуфер?
Малабарба


@Malabarba Вибачте, я не на 100% переживаю терміналогію emacs. Я маю на увазі і те, і інше. Я не можу багато бачити внизу екрана.
Mongus Pong

Відповіді:


19

Вміст mode-lineфайлу зберігається у змінній mode-line-format. Emacsтакож підтримує рядок заголовка, вміст якого керується змінною header-line-format.

В принципі можна використовувати

(setq header-line-format mode-line-format)
(setq-default mode-line-format nil)

щоб зробити формат header-linebe рівним формату вашого поточного рядка режиму та видалити mode-line.

Редагувати: Якщо ви хочете користуватися цією настройкою назавжди, поставте

(setq-default header-line-format mode-line-format)

у вашому файлі init (спасибі nispio за цю пропозицію).

Оскільки ви також хочете, minibufferщоб це відображалося вгорі, я повторно зв’яжу відповідь @ Малабарби на питання Як відобразити вміст мінібуфера посередині кадру emacs? який може бути адаптований для показу мінібуфера вгорі. Також розглянемо @phils відповідь на питання Чи можна перемістити мінібуфер emacs у верхній частині екрана? на "старий" emacs тег у stackoverflow.

Наскільки я знаю, немає можливості безпосередньо поставити мінібуфер вгорі. Єдиний підхід (який також використовується вищезазначеними відповідями) - це використовувати другий кадр.


4
Якщо ви додаєте це у свій файл init, ви хочете використовувати setq-defaultзамість setq.
nispio

Чи можу я запитати причину погіршення голосу?
elemakil

@elemakil Відповідь була помилковою без setq-default. Тепер це правильно. :-)
Малабарба

(хоча технічно це зараз неповно щодо нових деталей, наданих користувачем)
Malabarba

@Malabarba Я бачу. Дякуємо, що очистили це! :-)
elemakil

4

Ваше справжнє питання - як змусити Emacs уникати несправної частини екрану; лінія режиму та мінібуфер - це лише те, що має тенденцію нечитати.

Замість того, щоб перемістити їх і залишити щось інше (наприклад, текст) у нечитабельній частині екрана, більш чистим і загальним рішенням є зменшення та переміщення кадру Emacs (тобто те, що зазвичай називають вікном), щоб воно повністю містилося в хорошій області екран.

Як зазвичай у Emacs, для цього є спеціальні інструменти. Бібліотека Maxframe ( домашня програма Github ) призначена для автоматичного заповнення всього екрана кадром Emacs, протилежним необхідному, але в ньому є корисна mf-set-frame-pixel-sizeфункція, яку можна викликати з файлу init разом зі стандартною set-frame-positionфункцією, щоб розмістити ваш кадр у відповідному положенні автоматично, коли ви відкриєте Emacs.


1
Я підтримую вашу думку. Але зламати пакет не обов’язково. Див . Параметри за рамками за замовчуванням .
Малабарба

@Malabarba На незв'язаній ноті, про doc.endlessparentheses.com , чому лише другий нахил вперед перетворюється на код ascii? Приклад: я отримую, http://doc.endlessparentheses.com/Var%2F2C-window-width.htmlколи натискаю 2C-window-width тут .
Каушал Моді

@kaushalmodi - це лише невелика помилка у створенні індексу. Ви можете використовувати звичайні косої риски на посиланнях, і вони добре працюватимуть. Я виправив це локально, але відновлення індексу займає години, тому я відкладаю його до 25-го
числа

1
@Malabarba: mf-set-frame-pixel-size є корисним, оскільки основний спосіб встановити висоту та ширину кадру - символами, а не пікселями, що не дуже практично в цьому сценарії. default-frame-alist та його родичі також вимірюють символи.
Лоренцо Гетті
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.