¿Cómo iniciar gVim maximizado?

38

¿Cómo hacer que gVim maximice automáticamente su ventana cuando lo abro? Y una solución multiplataforma, estoy tratando de usar las mismas configuraciones en una máquina Linux y Windows ...

He intentado el hack :set lines=999 columns=999, casi funciona, pero la ventana no está maximizada, solo redimensionada y pierdo algunas filas / columnas.

Alguien todavía te usa MS-DOS
fuente
3
Esa es la forma más portátil que conozco. ¿Podría dar más detalles sobre "pero la ventana no está maximizada, solo cambia el tamaño y pierdo algunas filas / columnas". La maximización es afaik, redimensionando hasta los bordes. Y no creo que haya perdido una fila / columna de esa manera.
Torre de
@Idigas: correcta, la maximización es sólo "cambio de tamaño hasta que se llena el espacio disponible (no cubre las barras de herramientas, etc.)", en términos de WM-hablar :)
Akira
Establecer el truco anterior no cambia el tamaño hasta los bordes. Estoy empezando a pensar que el mejor enfoque va a agregar un if en mi vimrc: si aparece windows, llame a una configuración, de lo contrario, llame a otra configuración.
Alguien todavía te usa MS-DOS

Respuestas:

30

De la wiki de Vim :

au GUIEnter * simalt ~x

Eso funcionará en Windows; No estoy seguro de qué combinaciones de teclas necesitarías en Gnome / KDE.

njd
fuente
Esto no funcionó para mí en Windows 7 Ultimate.
Matt Alexander
2
También depende del lenguaje del sistema operativo tristemente. Para las versiones francesas de Windows, se convierte en au GUIEnter * simalt ~n.
antes del
¿Hay alguna forma de hacer lo contrario, para maximizar? Parece que :simalt ~xsolo funciona de una manera en Windows7x64 ENG.
TankorSmash
1
~xproviene del atajo de teclado para la opción de menú. Verifique el acceso directo para la opción de deseo y pruébelo. Tal vez es Restore?
Grzegorz Gierlik
@GrzegorzGierlik Gracias, tienes razón. No me di cuenta de que eso simaltsignificaba "simular la pulsación de teclas alt". Gracias.
TankorSmash
10

La mejor manera si le preocupa la compatibilidad multiplataforma es set lines=999 columns=999. Lo encontré en el Wiki de Vim , y a pesar de que no es perfecto, es la mejor solución si necesita trabajar en diferentes sistemas operativos.

Alguien todavía te usa MS-DOS
fuente
¿Puedes combinar esto con au GUIEnter * simalt ~ x ??
snitzr
Sí, creando una condición en su vimrc para saber si es Windows o Linux. Como estoy usando principalmente Linux, voy a agregar esta configuración más tarde.
Alguien todavía te usa MS-DOS el
Este enfoque no funciona para mí en GNOME 3. Cuando la ventana ya no estaba maximizada, esto ralentizará a Vim por un tiempo (no sucede cuando maximizo el uso del administrador de ventanas), y dejará un pequeño margen arriba la ventana descubierta, porque la altura de mi pantalla no es un múltiplo perfecto de la altura de la línea. Cuando la ventana se maximizó verticalmente (pero no horizontalmente) arrastrando la ventana hacia la izquierda o hacia la derecha de la pantalla, esto no tendrá ningún efecto.
Andres Riofrio
@AndresRiofrio Para estas situaciones (múltiples entornos de escritorio en Linux), estoy pensando seriamente en usar devilspie . Es una solución de terceros, lo sé, pero puede funcionar. Lo he usado en algunas otras aplicaciones que quería que se maximizaran.
Alguien todavía te usa MS-DOS el
Esto también hace que la ventana se vuelva enorme si la maximizas.
Kevin Cox
6

Truco con:

au GUIEnter * simalt ~x

depende del idioma de Windows.

Para mi versión polaca funciona:

au GUIEnter * simalt ~ s

De donde sviene Mak_s_ymalizuj.

Entonces, si ~xno funciona, presione ALT+SPACEpara abrir el menú Ventana y verifique el acceso directo para la opción del menú Ventana Ma_x_imize .

Grzegorz Gierlik
fuente
1
Y ~ n para francés ("Agra & ndir")
Sébastien RoccaSerra
1
Y ~ m para noruego
Bjarte Brandt
4

Puede usar el complemento maximizar.dll para la vista de pantalla completa en Vim (si está utilizando Windows). Simplemente copie maximizar.dll en la vimdirectory/plugincarpeta.

fatihturan
fuente
3

Para mí, :simalt ~xhizo el truco. (Windows 7, inglés).

Por Christian Corneliussen
fuente
3

En GNU / Linux

En GNU / Linux, la forma más fácil es invocar gvimcon la -geometryopción. Por ejemplo:

gvim -geometry 1336x744

Esto no es útil si desea reutilizar el mismo comando de inicio en diferentes máquinas.

Esto es lo que estoy usando ahora en varias máquinas sin ningún problema. Solo agrégalo en algún lugar en lo alto de tu .vimrc.

if has("gui_running")
  " GUI is running or is about to start.
  " Maximize gvim window (for an alternative on Windows, see simalt below).
  set lines=999 columns=999
else
  " This is console Vim.
  if exists("+lines")
    set lines=50
  endif
  if exists("+columns")
    set columns=100
  endif
endif

Fuente: http://vim.wikia.com/wiki/Maximize_or_set_initial_window_size

Serge Stroobandt
fuente
Para Linux, esta es probablemente la mejor opción. en .zshrc do alias v = "gvim -geometry 1366x768" y está listo para siempre.
Tanel Tammik
@TanelTammik Echa un vistazo nuevamente a mi respuesta. Lo he editado sustancialmente para mostrar la mejor solución que estoy usando ahora. Gracias por votar.
Serge Stroobandt
2

ACTUALIZACIÓN: para usuarios de Linux, he encontrado una solución mucho mejor que realmente maximiza la ventana: https://stackoverflow.com/questions/12448179/how-to-maximize-vims-windows-on-startup-with-vimrc

La única dependencia es wmctrl, pero vale la pena instalarla.

Entonces, para Windows utilizo el complemento maximizar.dll (como ya lo mencionó @fatihturan), y para Linux lo uso wmctrl. ¡Excelente!

(pero realmente no puedo entender por qué en 2014 gvim no tiene esta característica lista para usar)


Vieja respuesta:


Para mí, el hack simple :set lines=999 columns=999funciona mal en mi Linux Mint MATE con dos monitores. Por lo general, he abierto gvim en el monitor secundario, no hay barra de tareas, por lo que Vim debería ocupar toda la pantalla. Pero si lo hago :set lines=999 columns=999, gvim reduce estos valores al tamaño del monitor primario , por lo tanto, hay un área pequeña debajo de la ventana de gvim sin usar. Es mejor si configuro el recuento real de líneas / columnas: simplemente maximice su ventana "a mano" y escriba :set lines?y :set columns?, para obtener los valores necesarios. Como uso dos monitores, también necesito especificar la posición de la ventana, por lo tanto, escriba :winpospara obtener la posición actual de la ventana.

Y en segundo lugar, es mejor no solo poner estas configuraciones en .vimrc, sino ejecutarlas cuando se carga la interfaz gráfica de usuario.

Entonces, receta final:

1) maximizar su gvim con la mano y escriba tres comandos para obtener valores reales: :winpos, :set lines?y :set columns?.

2) agregue esto a .vimrc:

function Maximize()

   " put your actual values below
   winpos 0 0
   set lines=78
   set columns=237

endfunction

autocmd GUIEnter * call Maximize()
Dmitry Frank
fuente
Interesante. Tal vez pueda obtener dinámicamente los valores de líneas y columnas en vimscript, por lo que esta configuración funcionará en todos los dispositivos.
Alguien todavía te usa MS-DOS
1

Ubuntu (16.04)

Mejor deje que el administrador de ventanas haga esta tarea, al menos en Ubuntu , se mostrará en pantalla completa en gvimlugar de maximizar la ventana, lo que le dará más espacio. Por supuesto, esta solución depende de la plataforma y no es multiplataforma, pero es una opción mucho mejor para Ubuntu . Incluso puede configurar gvimpara abrir en una ventana gráfica específica .

Administrador de configuración de configuración de Compiz -> Colocar Windows -> Colocación de ventana fija -> Windows con modo de colocación fija -> nuevo

 Windows class=Gvim
 Mode    Maximize

Si no tiene el Administrador de configuración de configuración de Compiz:

sudo apt install compizconfig-settings-manager
Janghou
fuente
1

Si desea que vim logre la pantalla completa en Windows a fondo (como en la imagen), el complemento gvimfullscreen_win32es muy recomendable.

El complemento permite un acceso más fácil a un modo de pantalla completa y un entorno libre de distracciones. También puede agregar :set go=para ganar más espacio. Aquí hay una captura de pantalla (Gvim7.4 en Windows 8.1):

ingrese la descripción de la imagen aquí

rahuldottech
fuente
0

Creo que puede hacer esto en su $HOME/.vimrcpara lograr lo que quiere:

if has("gui_running")
     set fuoptions=maxvert,maxhorz
     au GUIEnter * set fullscreen
 endif

Puede confirmar dónde se aplica la pantalla completa de la siguiente manera:

:verbose set nofullscreen?
 fullscreen
       Last set from ~/.vim_runtime/my_configs.vim
slm
fuente
Parece que esto solo funciona para MacVim.
Michael Yoo