Buscando un terminal centrado de pantalla completa

8

Existen varios 'editores libres de distracciones' para escribir: estos proporcionan un entorno mínimo de pantalla completa con el objetivo de obligarse a centrarse en la tarea en cuestión.

Quiero hacer algo similar con vim. Si bien simplemente puedo encenderlo en un terminal y luego presionar F11 para ponerlo en pantalla completa, también quiero limitar el ancho a alrededor de 75 caracteres y centrar el área que estoy usando.

Piense en cómo los procesadores de texto proporcionan una página virtual en el medio del programa; eso es lo que quiero. Algo así como.

¿Hay alguna manera de hacer esto, ya sea con un programa de terminal especial o con alguna configuración en vim? Si uno de los programas vim de la GUI tiene esta capacidad, o si hay alguna otra forma de hacerlo que no haya pensado, esa también sería una respuesta útil.

maldad
fuente

Respuestas:

12

Si comienza screenen un maximizado xterm( Alt-Enteren xterm) como:

screen -c this-file

Donde this-filecontiene:

focusminsize 75 25
split -v
focus
only
split -v
split -v
focus

Obtendrá una región central de ancho 75.

Stéphane Chazelas
fuente
Esto es casi perfecto, gracias. Esto pone bordes blancos alrededor del área activa y en la parte inferior de la terminal; ¿Sabes si hay una manera de deshacerte de ellos?
evilsoup
Esto no funcionó para mí.
slm
1
RE: mi comentario anterior, la respuesta para deshacerse de las fronteras se puede encontrar en esta pregunta SU . Puse las líneas en mi .screenrc, por lo que mi valor predeterminado screenusará todos los comandos aquí. Funciona perfectamente para mí en Ubuntu 13.04, gnome-terminalversión 3.6.1 (y en xterm y guake) y la screenversión 4.00.03jw4. ¡Gracias!
evilsoup
Estoy en Fedora 14 y gnome-terminal versión 2.32.0. Versión de pantalla 4.00.03. xterm -v, 6.8.99.903. No funciona ahi.
slm
Probé en Ubuntu 13.04 funcionó allí. Ahora veo lo que está haciendo. Son 3 paneles, divididos equitativamente, y el foco está en el medio.
slm
1

Una alternativa es utilizar un programa como devilspiepara lograr esto. En caso de que nunca hayas oído hablar de devilspie:

extracto

Una utilidad de coincidencia de ventanas, inspirada en la opción "Ventanas combinadas" de Sawfish y la falta de funcionalidad en Metacity. La falta de correspondencia de ventanas en Metacity no es algo malo: Metacity es un administrador de ventanas esbelto, y la coincidencia de ventanas no tiene que ser una tarea de administrador de ventanas.

Devil's Pie se puede configurar para detectar ventanas a medida que se crean, y hacer coincidir la ventana con un conjunto de reglas. Si la ventana coincide con las reglas, puede realizar una serie de acciones en esa ventana. Por ejemplo, puedo hacer que todas las ventanas creadas por X-Chat aparezcan en todos los espacios de trabajo, y la ventana principal de Gkrellm1 no aparece en el buscapersonas o la lista de tareas.

Debería estar en la mayoría de los repositorios de las distribuciones.

Ejemplo

Entonces, para centrar una xtermventana que se ejecuta vimdentro de ella, haría lo siguiente.

  1. Haga su configuración de Devil's Pie. dir.

    $ mkdir ~/.devilspie
    
  2. Crea un .dsarchivo que especifique que eres la regla de Devil's Pie

    $ cat ~/.devilspie/something.ds 
    (if
        (matches (application_name) "vim")
        (begin
            (geometry "600x400")
            (center)
        )
    )
    
  3. Ejecutar devilspie. Me gusta ejecutarlo en modo de depuración ( -d) para comenzar.

    $ devilspie -d
    Devil's Pie 0.22 starting...
    Loading /etc/devilspie
    /etc/devilspie doesn't exist
    Loading /home/saml/.devilspie
    Loading /home/saml/.devilspie/something.ds
    1 s-expressions loaded.
    
  4. Ejecute nuestro xtermcon vim.

    $ xterm -e vim
    

    ss de xterm vim

¿Cómo se llama mi ventana?

Puede usar el comando xlsclient -lpara obtener una lista de ventanas abiertas. Me parece la forma más fácil de determinar el nombre de una ventana para su incorporación devilspie. También es posible que desee utilizar xwininfotambién.

Ejemplo

$ xlsclients -l|less
...
Window 0x6800023:
  Machine:  grinchy
  Name:  vim
  Icon Name:  vim
  Command:  xterm -e vim
  Instance/Class:  xterm/XTerm
...

Puede controlar un nombre de Windows como este:

$ xterm -title WeirdWindow -e vim

Referencias

slm
fuente
Esto definitivamente es bueno, pero no es lo que estoy tratando de lograr. Simplemente coloca la ventana en un lugar específico y con dimensiones de ventana específicas, ¿verdad? Quiero tener una 'página' activa en el centro de la pantalla, con el resto de la pantalla en blanco, para que no haya distracciones en el fondo.
evilsoup
@evilsoup: sí, centra xterm @ dimensiones especificadas. Puede dejar en blanco el fondo, actualizaré mi respuesta solo para que tengamos un método alternativo. Su pregunta no decía que lo quería en blanco en el fondo, tal vez me perdí algo. También creo que te estás perdiendo el poder de devilspie. Puede agregar una regla al archivo .ds para minimizar todo lo demás, por ejemplo.
slm
@evilsoup: ¿sería suficiente borrar el fondo? Sé que tiene la otra solución, pero solo quería proporcionar un método alternativo.
slm
1

Hay un complemento para Vim llamado VimRoom que proporciona esto a través de una asignación (el valor predeterminado es V).

Wieland
fuente