bash ubuntu vim tabs alias

bash - Abre archivos en Gvim existente en varias pestañas(nuevas)



ubuntu tabs (6)

He puesto algunos alias en mi .bashrc para abrir un grupo de archivos de proyecto en gvim, cada uno en su propia pestaña:

gvim -p <list of file names using absolute paths>

Esto está muy bien, excepto que hay varios grupos de archivos en los que me gustaría moverme en cualquier momento dado (mi proyecto actual usa Ruby on Rails, eso explica eso). Lo que sería realmente increíble es si pudiera agregar las nuevas pestañas a una instancia existente de gvim. En mi último puesto trabajé en Vista; Lo solucioné abriendo un montón de pestañas vacías en gvim, lo que me permitió hacer clic con el botón derecho en un nombre de archivo y elegir "Abrir en gvim sin nombre existente". Ahora uso Ubuntu y no hay tal cosa en el menú contextual. ¿Hay alguna forma de hacer esto desde la línea de comando?


¿Desea que su menú contextual de Windows le permita abrir archivos en una nueva pestaña de la ventana de gvim actualmente abierta?

Guárdelo como un archivo llamado temp.reg y haga doble clic para agregar la configuración a su registro. Asegúrese de modificar la ruta a vim si la suya es diferente.

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT/*/Shell/Open with &Vim] [HKEY_CLASSES_ROOT/*/Shell/Open with &Vim/command] @="/"C://Program Files (x86)//Vim//vim73//gvim.exe/" -p --remote-tab-silent /"%1/" /"%*/""

Ahora tendrá un menú contextual como este:


Aquí está mi script de inicio de gvim. Es una extensión de respuestas anteriores. Asegura que solo se ejecutará una instancia de gvim cuando se gvim en todas las circunstancias:

  • se llama a gvim sin nombre de archivo cuando no se está ejecutando ninguna instancia de gvim ; gvim se inició.
  • se llama a gvim sin nombre de archivo en presencia de una instancia de gvim ; Se abre una nueva pestaña vacía.
  • Se llama a gvim con un nombre de archivo con o sin una instancia de gvim ; se abre una pestaña que muestra el archivo.

Esto imitará el comportamiento estándar de otros editores.

#!/bin/bash exec=/usr/bin/gvim #the path to gvim if [ $# -eq 0 ] then # no filename given if [ -z $($exec --serverlist) ] then # no filename given and no gvim instance $exec -f --servername GVIM > /dev/null 2>&1 else # no filename given, but a gvim instance exists $exec -f --servername GVIM --remote-send '':tabnew<CR>'' > /dev/null 2>&1 fi else # filenames given $exec -f --servername GVIM --remote-tab "$@" > /dev/null 2>&1 fi


Desde el interior de Gvim, escriba :tabe {file_name} . Esto abre el archivo nombrado en una nueva pestaña. Si no le gusta escribir nombres de archivo largos, intente esto:

:tabnew :e .

Esto abrirá una nueva página en blanco y abrirá un buscador de archivos. Puede hacer clic en el mouse o usar el teclado. Haga clic o presione la tecla Intro en el archivo que desea abrir. Intente usar el teclado para colocar el cursor sobre el archivo que desea abrir y luego presione ''t''. Esto abre el archivo seleccionado en una nueva pestaña, manteniendo el buscador de archivos abierto en la primera pestaña. Esta podría ser una forma rápida de abrir un grupo de archivos.

Hay muchas cosas que puede hacer con las pestañas que pueden facilitarle la vida. Para acceder a la sección correspondiente en el manual de ayuda de Vim en línea, escriba :h tabpage .


Hay una manera:

n*.cpp|tab ba

o si te gusta dividir:

n*.cpp|sba

Si deseas saber más:

:help ba

y no sé qué es n , pero no funcionaría sin eso.


Los usuarios de Linux pueden usar este tipo de script:

#!/bin/bash ANS=`pgrep -fx "gvim --servername GVIM"` echo $@ if [[ ! $ANS ]]; then gvim --servername GVIM fi if [[ $1 ]]; then gvim --servername GVIM --remote-tab "${@}" fi

Y luego edite el archivo gvim.desktop para usar este script:

Exec=/home/user/bin/my_gvim_script.sh %F


Si vim se compila con la opción del clientserver del clientserver , puede hacerlo. Comience su instancia de vim con la siguiente marca:

$ gvim --servername GVIM # GVIM is the server name. It can be anything.

Para abrir más pestañas en esta instancia, puede ejecutar el comando:

$ gvim --servername GVIM --remote-tab file1 file2 file3 ...

La función del servidor del cliente en vim es muy útil. No está limitado a abrir archivos; se puede usar para enviar cualquier comando a vim usando la línea de comando. Por ejemplo, para cerrar una instancia de vim de forma remota, puede usar:

$ gvim --servername GVIM --remote-send ''<Esc>:wqa<CR>''