Memindahkan garis mode dan minibuffer ke atas

12

Apakah ada cara saya bisa memindahkan garis mode dan minibuffer dari bawah ke atas layar?

Minibuffer dicakup oleh pertanyaan sebelumnya. Bagaimana menampilkan konten minibuffer di tengah bingkai emacs? , jadi pertanyaan ini terutama tentang garis mode.

Saya baru saja menjatuhkan laptop saya dan meretakkan layar, jadi saya tidak bisa melihat banyak hal di baris paling bawah.

Mongus Pong
sumber
Dengan "bilah status" maksud Anda baris mode atau minibuffer?
Malabarba
@Malabarba Maaf saya tidak 100% menggunakan terminologi emacs. Maksud saya keduanya. Saya tidak bisa melihat banyak di bagian bawah layar.
Mongus Pong

Jawaban:

18

Konten mode-linedisimpan dalam variabel mode-line-format. Emacsjuga mendukung baris tajuk yang kontennya dikemudikan oleh variabel header-line-format.

Pada prinsipnya Anda bisa menggunakan

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

untuk membuat format header-linemenjadi sama dengan garis mode Anda saat ini dan menghapus mode-line.

Sunting: Jika Anda ingin menggunakan pengaturan ini secara permanen

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

dalam file init Anda (terima kasih kepada nispio untuk saran itu).

Karena Anda juga ingin minibuffertampil di atas, saya akan menautkan kembali jawaban Malabarba ke pertanyaan. Bagaimana menampilkan konten minibuffer di tengah bingkai emacs? yang dapat disesuaikan untuk menunjukkan minibuffer di bagian atas. Juga, pertimbangkan jawaban @phils untuk pertanyaan . Mungkinkah memindahkan emu mini minibus ke bagian atas layar? pada tag "lama" emacs pada stackoverflow.

Sejauh yang saya tahu, tidak ada cara untuk langsung menempatkan minibuffer di atas. Satu-satunya pendekatan (yang juga digunakan oleh jawaban di atas) adalah menggunakan bingkai kedua.

elemakil
sumber
4
Jika Anda menambahkan ini ke file init Anda, Anda akan ingin menggunakan setq-defaultbukan setq.
nispio
Bolehkah saya meminta alasan downvote?
elemakil
@elemakil Jawabannya salah tanpa setq-default. Sekarang benar. :-)
Malabarba
(meskipun secara teknis sekarang tidak lengkap mengenai detail baru yang disediakan oleh pengguna)
Malabarba
@Malabarba begitu. Terima kasih sudah membereskannya! :-)
elemakil
4

Pertanyaan Anda sebenarnya adalah bagaimana membuat Emacs menghindari bagian layar Anda yang rusak; baris mode dan minibuffer hanya cenderung berakhir tidak dapat dibaca.

Daripada memindahkan mereka dan meninggalkan sesuatu yang lain (seperti teks) di bagian layar yang tidak dapat dibaca, solusi yang lebih bersih dan umum adalah menyusut dan memindahkan bingkai Emacs (yaitu apa yang biasanya disebut jendela) sehingga benar-benar terkandung di wilayah yang baik dari layar.

Seperti biasa dengan Emacs, ada alat khusus untuk itu. Maxframe library ( rumah Github ) dirancang untuk secara otomatis mengisi seluruh layar dengan bingkai Emacs, kebalikan dari apa yang Anda butuhkan, tetapi memperlihatkan mf-set-frame-pixel-sizefungsi yang bermanfaat , yang dapat dipanggil dari file init bersama dengan set-frame-positionfungsi standar untuk menempatkan Anda membingkai dalam posisi yang tepat secara otomatis ketika Anda membuka Emacs.

Lorenzo Gatti
sumber
1
Saya mendukung poin Anda. Tetapi tidak perlu meretas paket. Lihat default-frame-alist .
Malabarba
@Malabarba Pada catatan yang tidak terkait, tentang doc.endlessparentheses.com , mengapa hanya garis miring kedua yang dikonversi menjadi kode ascii? Contoh: Saya dapatkan http://doc.endlessparentheses.com/Var%2F2C-window-width.htmlketika saya klik di 2C-window-width sini .
Kaushal Modi
@kaushalmodi itu hanya bug kecil dalam bagaimana indeks dihasilkan. Anda dapat menggunakan garis miring pada tautan dan itu akan berfungsi dengan baik. Saya sudah memperbaikinya secara lokal, tetapi membuat ulang indeks membutuhkan waktu berjam-jam, jadi saya menunda sampai emacs 25. :-)
Malabarba
1
@Malabarba: ukuran mf-set-bingkai-piksel berguna karena cara stok untuk mengatur tinggi dan lebar bingkai adalah dengan karakter, bukan oleh piksel, yang tidak terlalu praktis dalam skenario ini. default-frame-alist dan kerabatnya juga mengukur karakter.
Lorenzo Gatti