Movendo a linha de modo e o minibuffer para o topo

12

Existe alguma maneira de mover a linha de modo e o minibuffer da parte inferior para a parte superior da tela?

O minibuffer é coberto pela pergunta anterior Como exibir o conteúdo do minibuffer no meio do quadro emacs? , então essa pergunta é principalmente sobre a linha de modo.

Acabei de largar meu laptop e rachei a tela, então não consigo ver muito ao longo da linha inferior.

Mongus Pong
fonte
Por "barra de status", você quer dizer a linha de modo ou o minibuffer?
Malabarba 22/10
@ Malabarba Desculpe, eu não sou 100% acima na terminologia emacs. Eu quero dizer os dois. Não vejo muito na parte inferior da tela.
Mongus Pong

Respostas:

18

O conteúdo do mode-linesão armazenadas na variável mode-line-format. Emacstambém suporta uma linha de cabeçalho, cujo conteúdo é guiado pela variável header-line-format.

Em princípio você pode usar

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

para tornar o formato header-lineigual ao da sua linha de modo atual e remover o mode-line.

Editar: se você deseja usar esta configuração permanentemente,

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

no seu arquivo init (obrigado a nispio por essa sugestão).

Como você também deseja minibufferque apareça na parte superior, vou vincular novamente a resposta de @ Malabarba à pergunta Como exibir o conteúdo do minibuffer no meio do quadro do emacs? que pode ser adaptado para mostrar o minibuffer no topo. Além disso, considere a resposta do @phils à pergunta É possível mover o minibuffer do emacs para a parte superior da tela? na tag "antiga" emacs no stackoverflow.

Tanto quanto eu sei, não há como colocar diretamente o minibuffer no topo. A única abordagem (que também é usada pelas respostas acima) é usar um segundo quadro.

elemakil
fonte
4
Se você estiver adicionando isso ao seu arquivo init, você desejará usar em setq-defaultvez de setq.
Nispio 21/10
Posso perguntar o motivo do voto negativo?
elemakil
@elemakil A resposta estava errada sem o padrão setq. Agora está certo. :-)
Malabarba 22/10
(embora tecnicamente ele está agora incompleta sobre os novos dados fornecidos pelo usuário)
Malabarba
@ Malabarba eu vejo. Obrigado por esclarecer isso! :-)
elemakil 22/10
4

Sua verdadeira pergunta é como fazer o Emacs evitar a parte defeituosa da sua tela; a linha de modo e o minibuffer são apenas o que tende a ficar ilegível.

Em vez de movê-los e deixar outra coisa (como texto) na parte ilegível da tela, a solução mais limpa e geral está diminuindo e movendo o quadro do Emacs (ou seja, o que geralmente é chamado de janela), para que fique completamente contido na boa região da tela. tela.

Como de costume no Emacs, existem ferramentas específicas para isso. A biblioteca Maxframe ( home do Github ) foi projetada para preencher automaticamente a tela inteira com o quadro Emacs, o oposto do que você precisa, mas expõe uma mf-set-frame-pixel-sizefunção útil , que pode ser chamada a partir do arquivo init junto com a set-frame-positionfunção padrão para colocar o seu enquadrar na posição correta automaticamente quando você abre o Emacs.

Lorenzo Gatti
fonte
1
Eu apoio o seu ponto. Mas não é necessário hackear um pacote. Consulte lista -quadro-padrão .
Malabarba
@ Malabarba Em uma nota não relacionada, sobre doc.endlessparentheses.com , por que apenas a segunda barra é convertida em código ascii? Exemplo: recebo http://doc.endlessparentheses.com/Var%2F2C-window-width.htmlquando clico 2C-window-width aqui .
precisa
@kaushalmodi é apenas um pequeno bug na forma como o índice é gerado. Você pode usar barras regulares nos links e elas funcionarão bem. Eu fixo-lo localmente, mas regenerar o índice leva horas, por isso estou adiando-lo até que emacs 25. :-)
Malabarba
1
@ Malabarba: mf-set-frame-pixel-size é útil porque a maneira de definir a altura e largura do quadro é por caracteres, não por pixels, o que não é muito prático nesse cenário. default-frame-alist e seus parentes também medem em caracteres.
Lorenzo Gatti