MacVim: cambie a la pestaña donde se abre el archivo si intenta abrir un archivo ya abierto

3

A lo largo del día, a menudo abro muchas pestañas / ventanas abiertas en MacVim, olvido exactamente qué archivos he abierto, etc.

Luego, cuando intento abrir un archivo que ya he abierto en algún lugar, obtengo algo como lo siguiente:

Así que tengo que buscar dónde abrí el archivo antes, lo cual es molesto (tengo que ir a través de todas las ventanas una por una para encontrar su pestaña).

¿Hay alguna forma de hacer que MacVim cierre la pestaña donde abrí el archivo por última vez automáticamente cuando intento abrirlo nuevamente?

    
pregunta houbysoft 14.06.2012 - 20:14

3 respuestas

2

Puedes volver a asignar tabnew a tab drop para que cambies a archivos ya abiertos o para que te dirijan a un archivo creado recientemente.

cnoreabbrev <expr> tabnew getcmdtype() == ":" && getcmdline() == "tabnew" ? "tab drop" : "tabnew" 
    
respondido por el insider 02.07.2013 - 21:31
0

Puede usar SwapExists autocmd para realizar una acción cuando surja esta situación. Si solo quisiera ignorar el mensaje y editar el archivo de todos modos, podría agregar lo siguiente a su ~/.vimrc

autocmd SwapExists * :let v:swapchoice='e' 

O si desea recuperar automáticamente lo que estaba en el archivo de intercambio

autocmd SwapExists * :let v:swapchoice='r'

Consulte la ayuda ( :help SwapExists ) para obtener más información sobre sus opciones. Son el equivalente a hacer clic en las opciones del cuadro de diálogo que presenta MacVim.

Normalmente, un archivo de intercambio se crea cuando un proceso vim separado tiene el archivo abierto con ediciones. Puede que no sea posible rastrear ese búfer en ese otro proceso, pero si fuera posible, puede hacer que este autocmd active la función o el comando para hacerlo.

    
respondido por el claytron 22.06.2012 - 04:07
0

Esta no es una respuesta completa, pero si se combina con @claytron, es posible que funcione.

Busca el comando soltar, por ejemplo, : ayuda a caer. Lo uso junto con la pestaña (pestaña desplegable) para abrir mi vimrc en una nueva pestaña, o para cambiar a esa pestaña si ya está abierta:

nmap <leader>v :tab drop $MYVIMRC<CR>

Por lo tanto, debería poder hacer lo siguiente (NO PROBADO: no sé si% recogerá el nombre de archivo que intenta abrir, o el nombre de archivo del búfer actual, pero se le ocurre la idea):

autocmd SwapExists * :tab drop %<CR>

Lo único que queda es probar la diferencia entre un archivo de intercambio que existe porque esta instancia de vim lo posee, o porque otra instancia de vim lo posee, o debido a un bloqueo. En los casos 2 y 3 tendrás un bucle infinito.

    
respondido por el rjturn 10.10.2012 - 11:22

Lea otras preguntas en las etiquetas