4 votos

MacVim -- cambie a la pestaña donde se abre el archivo si tratando de abrir un archivo abierto

En el transcurso del día, a menudo me abren muchas pestañas/ventanas abiertas en MacVim, no recuerdo exactamente que archivos he abierto etc.

Luego, cuando intento abrir un archivo que ya se ha abierto en algún lugar, me sale algo como lo siguiente:

enter image description here

Así que tengo que ir a buscar donde me abrió el archivo de antes, lo cual es molesto (tengo que ir a través de todas las ventanas de uno por uno para encontrar en su ficha).

Es allí una manera de hacer MacVim acaba de cerrar la pestaña en donde la última vez que se abrió el archivo automáticamente cuando intento abrir el archivo de nuevo?

2voto

insider Puntos 121

Puede reasignar tabnew a tab drop por lo que será cambiado a la ya de los archivos abiertos o dirigirse a archivo recién creado.

cnoreabbrev <expr> tabnew getcmdtype() == ":" && getcmdline() == "tabnew" ? "tab drop" : "tabnew" 

0voto

Ali Puntos 296

Usted puede utilizar el SwapExists autocmd para realizar una acción cuando se presenta esta situación. Si usted quería simplemente ignorar el mensaje y editar el archivo de todos modos, se podría agregar lo siguiente a su ~/.vimrc

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

O si quería recuperar automáticamente lo que había 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 en el cuadro de diálogo que MacVim presenta.

Normalmente, un archivo de intercambio se crea cuando un independiente vim proceso tiene abierto el archivo con los cambios. Puede que no sea posible rastrear que búfer en ese otro proceso, pero si es posible, usted puede tener este autocmd activar la función o comando para hacerlo.

0voto

rjturn Puntos 53

Esto no es una respuesta completa, pero combinado con @claytron usted puede ser capaz de conseguir trabajo.

Buscar el comando drop, por ejemplo :ayudar a gota. Yo lo uso en conjunto con ficha (ficha de la gota) para abrir mi vimrc en una nueva pestaña, o para cambiar a la ficha si ya está abierto:

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

Así que usted debe ser capaz de hacer lo siguiente (NO PROBADOS: no sé si % recogerá el nombre del archivo que está intentando abrir, o el nombre de archivo del buffer actual, pero usted consigue la idea):

autocmd SwapExists * :tab drop %<CR>

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X