Spostando la riga della modalità e il minibuffer verso l'alto


12

Esiste un modo per spostare la linea di modalità e il minibuffer dalla parte inferiore alla parte superiore dello schermo?

Il minibuffer è coperto dalla domanda precedente Come visualizzare il contenuto del minibuffer al centro della cornice di emacs? , quindi questa domanda riguarda principalmente la linea di modalità.

Ho appena lasciato cadere il mio laptop e ho rotto lo schermo, quindi non riesco a vedere molto lungo la riga in basso.


Per "barra di stato" intendi la linea di modalità o il minibuffer?
Malabarba,


@Malabarba Mi dispiace non sono al 100% sulla terminologia di emacs. Intendo entrambi. Non riesco a vedere molto nella parte inferiore dello schermo.
Mongus Pong,

Risposte:


18

Il contenuto di mode-lineè memorizzato nella variabile mode-line-format. Emacssupporta anche una riga di intestazione il cui contenuto è guidato dalla variabile header-line-format.

In linea di principio puoi usare

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

per fare in modo che il formato di header-linesia uguale a quello della riga della modalità corrente e rimuovere il mode-line.

Modifica: se si desidera utilizzare questa impostazione in modo permanente

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

nel tuo file init (grazie a nispio per quel suggerimento).

Dato che vuoi anche che minibufferappaia in alto, ricollegherò la risposta di @ Malabarba alla domanda Come visualizzare il contenuto del minibuffer nel mezzo del riquadro di emacs? che può essere adattato per mostrare il minibuffer in alto. Inoltre, considera @phils la risposta alla domanda È possibile spostare il minibuffer emacs nella parte superiore dello schermo? sul tag "vecchio" emacs su StackOverflow.

Per quanto ne so, non c'è modo di posizionare direttamente il minibuffer in alto. L'unico approccio (che viene utilizzato anche dalle risposte precedenti) è utilizzare un secondo frame.


4
Se lo stai aggiungendo al tuo file init, dovrai usare setq-defaultinvece di setq.
nispio,

Posso chiedere il motivo del downvote?
elemakil,

@elemakil La risposta era sbagliata senza setq-default. Adesso è giusto :-)
Malabarba,

(anche se tecnicamente è ora incompleto per quanto riguarda i nuovi dettagli forniti dall'utente)
Malabarba

@Malabarba vedo. Grazie per averlo chiarito! :-)
elemakil,

4

La tua vera domanda è come fare in modo che Emacs eviti la parte difettosa dello schermo; la linea di modalità e il minibuffer sono solo ciò che tende a diventare illeggibile.

Piuttosto che spostarli e lasciare qualcos'altro (come il testo) nella porzione di schermo illeggibile, la soluzione più pulita e generale sta restringendo e spostando la cornice di Emacs (cioè quella che di solito viene chiamata una finestra) in modo che sia completamente contenuta nella buona regione del schermo.

Come al solito con Emacs, ci sono strumenti specifici per questo. La libreria Maxframe ( Github home ) è progettata per riempire automaticamente l'intero schermo con il frame Emacs, l'opposto di quello che ti serve, ma espone un'utile mf-set-frame-pixel-sizefunzione, che può essere chiamata dal file init insieme alla set-frame-positionfunzione standard per posizionare il tuo inquadra automaticamente la posizione corretta quando apri Emacs.


1
Sostengo il tuo punto. Ma non è necessario hackerare un pacchetto. Vedi default-frame-alist .
Malabarba,

@Malabarba Su una nota non correlata, su doc.endlessparentheses.com , perché solo la seconda barra in avanti viene convertita in codice ASCII? Esempio: ottengo http://doc.endlessparentheses.com/Var%2F2C-window-width.htmlquando faccio clic su 2C-window-width qui .
Kaushal Modi,

@kaushalmodi è solo un piccolo bug nel modo in cui viene generato l'indice. Puoi usare le barre regolari sui link e funzioneranno bene. L'ho corretto localmente, ma per rigenerare l'indice ci vogliono ore, quindi lo rimanderò fino al 25 dicembre. :-)
Malabarba

1
@Malabarba: mf-set-frame-pixel-size è utile perché il modo standard per impostare l'altezza e la larghezza del frame è di caratteri, non di pixel, il che non è molto pratico in questo scenario. default-frame-alist e i suoi parenti misurano anche in caratteri.
Lorenzo Gatti,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.