Doom-emacs: ¿Cómo se puede mover una ventana REPL?

Creado en 8 ago. 2017  ·  3Comentarios  ·  Fuente: hlissner/doom-emacs

Cuando abro un REPL usando C-c C-l , la ventana que crea parece especial (fondo más oscuro, sale del proceso cuando se cierra, ...).

También siempre parece dividir mi pantalla horizontalmente, lo que a veces es útil, a veces molesto. Sin saber lo suficiente sobre emacs, parece que no puedo encontrar una manera de mover esta ventana hacia el lado derecho.
Me las arreglé para ponerlo en otro marco usando los comandos switch-buffer, pero no puedo cerrar el original porque mata el proceso y todos los marcos que tienen el búfer en él.

¿Podría darme sugerencias sobre cómo manejar este búfer especial y cómo se muestra? :(

¡Gracias!

discussion

Comentario más útil

Mmm, aquí hay muchas partes móviles. No estoy seguro de a qué tiene C-c C-l vinculado. Si no estás usando el comando +eval/repl para iniciar la respuesta de un modo, Doom tratará el búfer de respuesta como un búfer especial común.

En ese caso, las dos variables relevantes son shackle-default-alignment y shackle-rules , que le dicen a Emacs cómo manejar las ventanas que cumplen con ciertos criterios.

Al final de shackle-rules hay dos reglas generales:

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

Los dos problemas aquí son :autokill t (que asegura que un búfer y sus procesos asociados se eliminen juntos) y como no hay :align especificado, recurre a shackle-default-alignment , que por defecto es 'below .

Entonces, ¿cómo solucionamos esto?

Aquí hay tres formas:

  1. Simplemente especifique una regla primordial para su respuesta en particular:

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

    Consulte M-x doom/describe-setting RET :popup para obtener más detalles.

  2. Habilite el modo menor +eval-repl-mode en su respuesta:

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

    Encontrará esta regla emergente en modules / feature / eval / config.el :

    (set! :popup
     '(:custom (lambda (b &rest _) (buffer-local-value '+eval-repl-mode b)))
     :size 16 :noesc t)
    
  3. Vincula C-c C-l a +eval/repl y utilízalo en su lugar para invocar tu respuesta. La mayoría de los modos tienen valores predeterminados razonables. Si no abre la respuesta que desea, puede cambiar la asociación major-mode-> repl con la configuración :repl , por ejemplo

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

    La función: repl wants debería devolver un búfer que contenga el repl.


¡Espero que ayude!

Todos 3 comentarios

Mmm, aquí hay muchas partes móviles. No estoy seguro de a qué tiene C-c C-l vinculado. Si no estás usando el comando +eval/repl para iniciar la respuesta de un modo, Doom tratará el búfer de respuesta como un búfer especial común.

En ese caso, las dos variables relevantes son shackle-default-alignment y shackle-rules , que le dicen a Emacs cómo manejar las ventanas que cumplen con ciertos criterios.

Al final de shackle-rules hay dos reglas generales:

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

Los dos problemas aquí son :autokill t (que asegura que un búfer y sus procesos asociados se eliminen juntos) y como no hay :align especificado, recurre a shackle-default-alignment , que por defecto es 'below .

Entonces, ¿cómo solucionamos esto?

Aquí hay tres formas:

  1. Simplemente especifique una regla primordial para su respuesta en particular:

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

    Consulte M-x doom/describe-setting RET :popup para obtener más detalles.

  2. Habilite el modo menor +eval-repl-mode en su respuesta:

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

    Encontrará esta regla emergente en modules / feature / eval / config.el :

    (set! :popup
     '(:custom (lambda (b &rest _) (buffer-local-value '+eval-repl-mode b)))
     :size 16 :noesc t)
    
  3. Vincula C-c C-l a +eval/repl y utilízalo en su lugar para invocar tu respuesta. La mayoría de los modos tienen valores predeterminados razonables. Si no abre la respuesta que desea, puede cambiar la asociación major-mode-> repl con la configuración :repl , por ejemplo

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

    La función: repl wants debería devolver un búfer que contenga el repl.


¡Espero que ayude!

Oh, me olvidé de mencionar: actualmente no hay forma de mover una ventana emergente en vivo (nunca lo he necesitado). Eso es algo que intentaré arreglar.

¡Esa parece toda la ayuda que necesitaba!

Para ser más específico, en realidad estaba hablando del intero REPL, iniciado por un comando llamado intero-repl-load . No sé qué mecanismos utiliza entonces.

Terminé yendo con:

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

en mi modules/private/ptival/init.el , ¡funcionó como un encanto!

¡Gracias por tomarte el tiempo de explicarme todo esto! ¡No creo que me hubiera dado cuenta de esto por mi cuenta en un período de tiempo razonable! 👍

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

luisenrike picture luisenrike  ·  3Comentarios

governorgoat picture governorgoat  ·  3Comentarios

driftcrow picture driftcrow  ·  3Comentarios

idoo picture idoo  ·  3Comentarios

nasoundead picture nasoundead  ·  3Comentarios