Déplacer la ligne de mode et le mini-tampon vers le haut

12

Existe-t-il un moyen de déplacer la ligne de mode et le mini-tampon du bas vers le haut de l'écran?

Le mini-tampon est couvert par la question précédente Comment afficher le contenu du mini-tampon au milieu du cadre emacs? , cette question concerne donc principalement la ligne de mode.

Je viens de laisser tomber mon ordinateur portable et de casser l'écran, donc je ne vois pas grand-chose le long de la rangée du bas.

Mongus Pong
la source
Par "barre d'état", voulez-vous dire la ligne de mode ou le mini-tampon?
Malabarba
@Malabarba Désolé, je ne connais pas à 100% la terminologie emacs. Je veux dire les deux. Je ne peux pas voir grand-chose en bas de l'écran.
Mongus Pong

Réponses:

18

Le contenu du mode-lineest stocké dans la variable mode-line-format. Emacsprend également en charge une ligne d'en-tête dont le contenu est dirigé par la variable header-line-format.

En principe, vous pouvez utiliser

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

pour que le format du header-linesoit égal à celui de votre ligne de mode actuelle et supprimez le mode-line.

Modifier: si vous souhaitez utiliser ce paramètre de façon permanente,

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

dans votre fichier init (merci à nispio pour cette suggestion).

Puisque vous souhaitez également que le minibuffermessage apparaisse en haut, je vais relier la réponse de @ Malabarba à la question Comment afficher le contenu du mini-tampon au milieu du cadre emacs? qui peut être adapté pour montrer le mini-tampon en haut. Considérez également la réponse de @phils à la question Est-il possible de déplacer le mini-tampon emacs en haut de l'écran? sur la "vieille" emacs balise sur stackoverflow.

Pour autant que je sache, il n'y a aucun moyen de placer directement le mini-tampon en haut. La seule approche (qui est également utilisée par les réponses ci-dessus) consiste à utiliser un deuxième cadre.

elemakil
la source
4
Si vous ajoutez ceci à votre fichier init, vous voudrez utiliser à la setq-defaultplace de setq.
nispio
Puis-je demander la raison du downvote?
elemakil
@elemakil La réponse était fausse sans setq-default. Maintenant c'est vrai. :-)
Malabarba
(bien que techniquement, il soit maintenant incomplet en ce qui concerne les nouveaux détails fournis par l'utilisateur)
Malabarba
@Malabarba je vois. Merci d'avoir clarifié ça! :-)
elemakil
4

Votre vraie question est de savoir comment faire en sorte qu'Emacs évite la partie défectueuse de votre écran; la ligne de mode et le mini-tampon ne sont que ce qui a tendance à devenir illisible.

Plutôt que de les déplacer et de laisser autre chose (comme du texte) dans la partie d'écran illisible, la solution la plus propre et la plus générale consiste à rétrécir et à déplacer le cadre Emacs (c'est-à-dire ce qui est généralement appelé une fenêtre) afin qu'il soit complètement contenu dans la bonne région du écran.

Comme d'habitude avec Emacs, il existe des outils spécifiques pour cela. La bibliothèque Maxframe ( Github home ) est conçue pour remplir automatiquement tout l'écran avec le cadre Emacs, à l'opposé de ce dont vous avez besoin, mais elle expose une mf-set-frame-pixel-sizefonction utile , qui peut être appelée à partir du fichier init avec la set-frame-positionfonction standard pour placer votre automatiquement dans la bonne position lorsque vous ouvrez Emacs.

Lorenzo Gatti
la source
1
J'appuie votre point. Mais il n'est pas nécessaire de pirater un package. Voir default-frame-alist .
Malabarba
@Malabarba Sur une note indépendante, à propos de doc.endlessparentheses.com , pourquoi la deuxième barre oblique est-elle uniquement convertie en code ascii? Exemple: je reçois http://doc.endlessparentheses.com/Var%2F2C-window-width.htmlen cliquant 2C-window-width ici .
Kaushal Modi
@kaushalmodi c'est juste un petit bug dans la façon dont l'index est généré. Vous pouvez utiliser des barres obliques régulières sur les liens et ils fonctionneront correctement. Je l'ai corrigé localement, mais la régénération de l'index prend des heures, donc je le reporte jusqu'à emacs 25. :-)
Malabarba
1
@Malabarba: mf-set-frame-pixel-size est utile car la méthode standard pour définir la hauteur et la largeur du cadre est en caractères, pas en pixels, ce qui n'est pas très pratique dans ce scénario. default-frame-alist et ses proches mesurent également en caractères.
Lorenzo Gatti