Doom-emacs: Como mover uma janela REPL?

Criado em 8 ago. 2017  ·  3Comentários  ·  Fonte: hlissner/doom-emacs

Quando abro um REPL usando C-c C-l , a janela que ele cria parece especial (fundo mais escuro, sai do processo quando fechado, ...).

Também parece sempre dividir minha tela horizontalmente, o que às vezes é útil, às vezes irritante. Não sabendo o suficiente sobre o emacs, não consigo encontrar uma maneira de mover esta janela para o lado direito.
Consegui colocá-lo em outro quadro usando os comandos switch-buffer, mas não consigo fechar o original porque ele mata o processo e todos os quadros que contêm o buffer.

Você poderia me dar dicas de como lidar com esse buffer especial e como ele é exibido? :(

Obrigado!

discussion

Comentários muito úteis

Hmm, há muitas peças móveis aqui. Não tenho certeza do que você vinculou C-c C-l . Se você não estiver usando o comando +eval/repl para iniciar o repl de um modo, o Doom tratará o buffer repl como um buffer especial comum.

Nesse caso, as duas variáveis ​​relevantes são shackle-default-alignment e shackle-rules , que dizem ao Emacs como lidar com janelas que atendem a certos critérios.

No final de shackle-rules existem duas regras gerais:

(set! :popup 
  '("^\\*"  :regexp t :noselect t :autokill t)
  '("^ \\*" :regexp t :size 12 :noselect t :autokill t :autoclose t))))

Os dois problemas aqui são :autokill t (que garante que um buffer e seus processos associados sejam eliminados juntos) e como não há :align especificado, ele recorre a shackle-default-alignment , cujo padrão é 'below .

Então, como podemos consertar isso?

Aqui estão três maneiras:

  1. Basta especificar uma regra de substituição para sua resposta em particular:

    (set! :popup "*my-repl-buffer*" :align 'left :noesc t)
    

    Veja M-x doom/describe-setting RET :popup para detalhes.

  2. Habilite o modo menor +eval-repl-mode em sua resposta:

    (add-hook 'inferior-python-mode-hook #'+eval-repl-mode)

    Você encontrará essa regra pop-up em modules / feature / eval / config.el :

    (set! :popup
     '(:custom (lambda (b &rest _) (buffer-local-value '+eval-repl-mode b)))
     :size 16 :noesc t)
    
  3. Vincule C-c C-l a +eval/repl e use-o para invocar seu repl. A maioria dos modos tem padrões razoáveis. Se não estiver abrindo o repl que você deseja, você pode alterar a associação do modo principal-> repl com a configuração :repl , por exemplo

    (set! :repl 'python-mode #'+python/repl)

    A função: repl deseja deve retornar um buffer contendo o repl.


Espero que ajude!

Todos 3 comentários

Hmm, há muitas peças móveis aqui. Não tenho certeza do que você vinculou C-c C-l . Se você não estiver usando o comando +eval/repl para iniciar o repl de um modo, o Doom tratará o buffer repl como um buffer especial comum.

Nesse caso, as duas variáveis ​​relevantes são shackle-default-alignment e shackle-rules , que dizem ao Emacs como lidar com janelas que atendem a certos critérios.

No final de shackle-rules existem duas regras gerais:

(set! :popup 
  '("^\\*"  :regexp t :noselect t :autokill t)
  '("^ \\*" :regexp t :size 12 :noselect t :autokill t :autoclose t))))

Os dois problemas aqui são :autokill t (que garante que um buffer e seus processos associados sejam eliminados juntos) e como não há :align especificado, ele recorre a shackle-default-alignment , cujo padrão é 'below .

Então, como podemos consertar isso?

Aqui estão três maneiras:

  1. Basta especificar uma regra de substituição para sua resposta em particular:

    (set! :popup "*my-repl-buffer*" :align 'left :noesc t)
    

    Veja M-x doom/describe-setting RET :popup para detalhes.

  2. Habilite o modo menor +eval-repl-mode em sua resposta:

    (add-hook 'inferior-python-mode-hook #'+eval-repl-mode)

    Você encontrará essa regra pop-up em modules / feature / eval / config.el :

    (set! :popup
     '(:custom (lambda (b &rest _) (buffer-local-value '+eval-repl-mode b)))
     :size 16 :noesc t)
    
  3. Vincule C-c C-l a +eval/repl e use-o para invocar seu repl. A maioria dos modos tem padrões razoáveis. Se não estiver abrindo o repl que você deseja, você pode alterar a associação do modo principal-> repl com a configuração :repl , por exemplo

    (set! :repl 'python-mode #'+python/repl)

    A função: repl deseja deve retornar um buffer contendo o repl.


Espero que ajude!

Ah, esqueci de mencionar: atualmente não há como mover uma janela pop-up ao vivo (nunca precisei). Isso é algo que tentarei consertar.

Essa parece toda a ajuda de que eu precisava!

Para ser mais específico, eu estava falando sobre o intero REPL, iniciado por um comando chamado intero-repl-load . Não sei quais mecanismos ele usa então.

Acabei indo com:

(set! :popup "^\\*intero:" :regexp t :align 'right :size 80)

no meu modules/private/ptival/init.el , funcionou perfeitamente!

Obrigado por me explicar tudo isso! Eu não acho que eu teria descoberto isso sozinho em um período de tempo razoável! 👍

Esta página foi útil?
0 / 5 - 0 avaliações