2008-09-25 10 views
155

Estoy usando Vim para Windows instalado en modo Unix. Gracias a este sitio ahora uso el comando gf para ir a un archivo bajo el cursor.Cómo regresas de 'gf' en Vim

Busco un comando a cualquiera:

  1. retorno al archivo anterior (similar a Ctrl +T para ctags), o
  2. de reasignación gf para iniciar automáticamente el nuevo archivo en una nueva ventana.

Respuesta

247

utilizo Ctrl - O

+1

Comando más simple. ¡Gracias! – JayG

+36

CTRL-O para ir a una posición anterior en la lista de salto, o CTRL-I para ir a una posición más nueva. –

+6

Ahora si pudiera recordar esto. – g33kz0r

8

Ctrl-Shift-6 es uno.

:e#↲ es otra.

+8

No es necesario el cambio. Deja de abusar de tus dedos. – Zathrus

+6

Um. Soy un viejo temporizador. Ctrl-6 no funcionaría con vi en la terminal Wyse que solía tener en el trabajo hace años. Mira, algunas cosas quedan grabadas. Y no usar Shift en este combo dificilmente haría una diferencia en mi total abuso de dedos. Oye, al menos has hecho todo lo posible. HTH. MANO. – tzot

11

Sólo tiene que utilizar :e# seguido por Introduzca - que básicamente se encarga de editar el último archivo (más reciente).

5

no sé la respuesta a la parte 2 de su pregunta, pero puedo ayudar con la parte 1. Uso

:e# 

Vim mantiene una lista de archivos (buffers) que es la edición. Si escribe

:buffers 

listará 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 pasar fácilmente de un archivo actual a uno alternativo. Yo en el mapa los comandos para F2 añadiendo esto a .vimrc

nmap `<F2> :e#<CR>` 
+2

No creo que quieras usar: e # porque eso potencialmente podría volver a cargar el archivo. : b # hace el equivalente sin este problema. – lambacck

+0

Buen punto. Eso cambia al otro buffer sin recargarlo. – codebunny

63

Suelo utilizar Ctrl - para esto.

Es práctico porque me permite saltar rápidamente hacia adelante y hacia atrás entre los dos archivos.

+1

Gracias! Siempre utilicé cntl-^(cntl-shift 6) La ficha –

2

Al abrir un nuevo archivo (con gf o : n u otro comando) el archivo antiguo se mantiene en una lista de buffers. Puede crear una lista de archivos abiertos con : ls

Si desea navegar fácilmente entre las memorias intermedias en vim, puede crear un mapeo:

nmap <M-LEFT> :bN<cr> 
nmap <M-RIGHT> :bn<cr> 

Ahora puede cambiar entre los tampones con Alt + izquierda flecha o Alt + flecha derecha.

La documentación completa sobre las asignaciones está aquí:

:help map.txt 
0

No he mirado a su gf comando pero imagino que utiliza el : comando encontrar: e o .
Suponiendo que esto es correcto, basta con sustituir el : e o : encontrar con : nueva (o : Vnuevo para una división vertical) y el archivo se abrirá en una nueva ventana en lugar de la misma .

p. Ej.

 
"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> 

36

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 los búferes.

+6

es más conveniente que el búfer para mí, y usar 'nnoremap gf gf' para abrir en una nueva pestaña puede ser mejor. – Searene

+1

Esto acaba de hacer mi vida un 20% mejor – Skurpi

4

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 incorporadas.

12

Use gf para descender a un archivo y utilice: bf para volver

+1

Tenía dos ventanas abiertas en una pestaña y esto acaba de abrir la segunda ventana en el primero en lugar de saltar al buffer anterior. –

Cuestiones relacionadas