Pregunta
Estoy usando Vim para Windows instalado en modo Unix. Gracias a este sitio, ahora uso el comando gf
para ir a un archivo debajo del cursor.
Estoy buscando un comando para:
- volver al archivo anterior (similar a Ctrl + T para ctags), o
- reasignar
gf
para iniciar automáticamente el nuevo archivo en una nueva ventana.
Solución
Yo uso Ctrl-O
Otros consejos
Con frecuencia uso Ctrl - 6 para esto.
Es útil porque me permite saltar rápidamente entre los dos archivos.
Es posible que desee utilizar CTRL-W gf
para abrir el archivo en una nueva pestaña.
Puede cerrar el archivo recién abierto como siempre con : bd
, o usar CTRL-6
y otras formas habituales de cambiar buffers.
Use gf para descender a un archivo y use: bf para volver
Simplemente use : e #
seguido de Enter , que básicamente dice que edite el último archivo (el más reciente).
Ctrl-Shift-6 es uno.
: e # & # 8626;
es otro.
No sé la respuesta a la parte 2 de tu pregunta, pero puedo ayudarte con la parte 1. Usa
:e#
Vim mantiene una lista de archivos (buffers) que está editando. Si escribe
:buffers
enumerará todos los archivos que está editando actualmente. El archivo en esa lista con un% al lado es el archivo actual. El que tiene el # al lado es el archivo alternativo. : e # cambiará entre el archivo actual y el alternativo. En lugar de escribir tanto, asigno F2 a: e # para poder cambiar fácilmente entre los archivos actuales y alternativos. Asigno el comando a F2 agregando esto a .vimrc
nmap `<F2> :e#<CR>`
Tengo CTRL-W f para trabajar.
Es bastante deprimente que haya pasado tanto tiempo perfeccionando mapas para estos comandos solo para descubrir que hay versiones integradas.
Consulte : help alternate-file .
Cuando abre un archivo nuevo (con gf o : n u otro comando), el archivo antiguo permanece en una lista de búferes. Puede listar archivos abiertos con :ls
Si desea navegar fácilmente entre buffers en vim, puede crear una asignación como esta:
nmap <M-LEFT> :bN<cr>
nmap <M-RIGHT> :bn<cr>
Ahora puede cambiar entre buffers con Alt + flecha izquierda o Alt + flecha derecha.
La documentación completa sobre las asignaciones está aquí:
:help map.txt
No he visto tu comando gf pero imagino que usa el comando : e o : buscar .
Suponiendo que esto es correcto, simplemente reemplace : e o : find con : new (o : vnew para una división vertical) y el archivo se abrirá en una nueva ventana en lugar de la misma.
por ejemplo
"Switch between header and cpp nmap ,s :find %:t:r.cpp<CR> nmap ,S :new %:t:r.cpp<CR> nmap ,h :find %:t:r.h<CR> nmap ,H :new %:t:r.h<CR> nmap ,F :new =expand("<cfile>:t")<CR><CR> nmap ,d :new =expand("<cfile>")<CR><CR>