Às vezes, quero exibir informações no estilo de buffer da Ajuda, portanto, tenho usado códigos como este:
(with-help-window (help-buffer)
(princ "Type q to exit this help buffer.\n\n")
(princ result))
Isso funciona bem, mas a janela de ajuda usa apenas metade do meu quadro. Normalmente, divido minha moldura horizontalmente, para dar duas janelas altas. O buffer de ajuda exibido usa uma das duas janelas.
Prefiro usar o quadro inteiro em alguns casos, para exibir mais informações e reduzir o número de vezes que preciso percorrer as informações exibidas. O problema a ser resolvido é como usar temporariamente o quadro inteiro para a with-help-window
chamada e restaurar automaticamente os tamanhos dos buffers / janelas originais quando digito "q" na janela de ajuda.
Como posso alcançar melhor esse objetivo? Acho que estou procurando algo assim:
(with-FULL-FRAME-help-window (help-buffer)
...)
Examinei o modo vencedor, marcadores, salvando layouts em registros, os vários (display-buffer ...)
métodos (e poderosos, mas complexos) . A maioria deles parece um pouco fora do alvo para minha intenção desejada, porque eles tendem a corrigir / restaurar um layout após uma operação de exibição de quadro completo. E parece-me que muitos deles exigem que eu restaure manualmente meu layout de janela (o que eu preferiria não fazer).
Gostaria de saber se alguém já ouviu falar de uma maneira de resolver isso simplesmente. Espero algo simples como essas possíveis abordagens, onde eu possa substituir algo com um quadro let ...
(let ((help-window-width-display-option fullwidth))
(with-help-window (help-buffer)
...))
Ou esse tipo de abordagem, que ainda não sei fazer, e que parece um pouco difícil / complicado para o meu nível de habilidade atual.
(let ((save original configuration somehow)
(delete-other-windows)
(with-help-window (help-buffer)
...)
;; somehow, when I type "q" in the help buffer
;; - catch that action in code after the buffer is killed
;; - and restore the original window configuration
)
Parece-me que o principal problema para resolver é como restaurar automaticamente a configuração original da janela quando digito "q" no buffer temporário do modo de ajuda. obrigado
display-buffer-pop-up-frame
, pois é bem próximo do que procuro. Mas ... o quadro aparece em outro lugar (não o meu quadro atual), e devo enviá-lo com cmd-w, não "q" no estilo de ajuda. Salvar / restaurar configurações de janela não é o problema subjacente. Atualmente, estou inclinado a clonar e modificar a fonte do with-help-window para oferecer uma opção que eu possa deixar vincular ou encerrar com um defmacro ou algo assim. Eu sorrio para o quão exigente nós emacs as pessoas estão querendo exatamente o que queremos do Emacs.
help-return-method
, quit-window
o quit-restore
parâmetro janela, e provavelmente algum código personalizado para definir / usar todas essas coisas para criar o efeito desejado.
display-buffer-pop-up-frame
: gnu.org/software/emacs/manual/html_node/elisp/… Outra idéia seria emitir ummake-frame
tempo usandodisplay-buffer
uma função personalizada para atingir esse novo quadro. Se você estiver interessado em localizar e direcionar um quadro existente, dê uma olhada neste exemplo: stackoverflow.com/questions/18346785/…