Sé que puedo abrir varios archivos vim
haciendo algo como vim 2011-12*.log
, pero ¿cómo puedo cambiar entre archivos y cerrarlos de uno en uno? Además, ¿cómo puedo saber el nombre del archivo actual que estoy editando?
Sé que puedo abrir varios archivos vim
haciendo algo como vim 2011-12*.log
, pero ¿cómo puedo cambiar entre archivos y cerrarlos de uno en uno? Además, ¿cómo puedo saber el nombre del archivo actual que estoy editando?
Respuestas:
En primer lugar, en vim puede ingresar :(dos puntos) y luego ayudar help
, ala :help
para obtener una lista de temas de autoayuda, incluido un breve tutorial. Dentro de la lista de temas, mueva el cursor sobre el tema de interés y luego presione ctrl]y se abrirá ese tema.
Un buen lugar para comenzar sería el tema
|usr_07.txt| Editing more than one file
Ok, a tu respuesta.
Después de iniciar vim con una lista de archivos, puede pasar al siguiente archivo ingresando :next
o :n
para abreviar.
:wnext
es la abreviatura de escribir los cambios actuales y luego pasar al siguiente archivo.
También hay un análogo :previous
, :wprevious
y :Next
. (Tenga en cuenta que :p
es la forma abreviada de :print
. La forma abreviada de :previous
es :prev
o :N
.)
Para ver dónde se encuentra en la lista de archivos, ingrese :args
y el archivo que se está editando aparecerá entre []
paréntesis.
Ejemplo:
vim foo.txt bar.txt
:args
resultado:
[foo.txt] bar.txt
puede abrir otro archivo mientras vim está abierto :tabe filename
y cambiar al otro archivo que escriba :tabn
o :tabp
al siguiente y al anterior en consecuencia.
Los atajos de teclado gT y gt también se pueden usar para cambiar de pestaña cuando no está en modo de edición (es decir, no en los modos de inserción, reemplazo, etc.). En algunos sistemas, Ctrl+ Alt+ Page Upy Ctrl+ Alt+ Page Downtambién permiten el cambio de tabulación, pero esto no siempre funciona (por ejemplo, no funcionará en el terminal OS X 'fuera de la caja').
Y puede ver el nombre del archivo en la parte superior de la aplicación vim.
vim -p file1 file2
:argadd filename
y luego :next
a él. Del mismo modo, puede usar :argdel filename
para eliminar uno de los archivos en edición.
Comandos para cambiar entre buffers:
:bf # Go to first file.
:bl # Go to last file
:bn # Go to next file.
:bp # Go to previous file.
:bw # Close file.
:help buffer
para encontrar más información
Para conocer el uso de nombre de archivo Ctrl+ G, :file
o:f
:bw
cerrar archivo jaja. No olvides leer la ayuda :bw
donde dice que solo debes usarla si sabes lo que estás haciendo. No es un gran problema, pero a menos que desee borrar todas las marcas e información sobre el archivo, mejor uso :bd
o :q
como una persona normal
:bw
en caso de que tenga curiosidad: vi.stackexchange.com/questions/2212/…
Otra opción, aparte de las respuestas dadas, es dividir la ventana con:
:sp
:vsp
:vsp
es para división vertical. Luego use Ctrl+W <ARROW_KEYS>
para moverse en los paneles.
:vs
lugar de:vsp
Ctrl+W, v
para división vertical y Ctrl+W, s
división horizontal.
CTRL+W
durante años y recientemente edito mucho VI dentro de las páginas web. Cada vez que escribo el comando sin siquiera pensar y ... whammmm ... ¡la pestaña del navegador se HA IDO! Siempre me olvido. Realmente necesito aprender un nuevo atajo.
Hice una pregunta similar en superusuario,
"¿Cómo copiar y pegar entre diferentes ventanas de bash y archivos abiertos con VI?"
La respuesta a mi pregunta fue que no puedes, pero puedes abrir dos archivos en una ventana bash usando el :split
comando de VIM :
$ vim file1
, abra un segundo archivo dentro de VIM usando el :split file2
comando.$ vim -o file1 file2
de bash.:q
cierra y se :q!
fuerza el cierre.Mi bash es en blanco y negro, por lo que el nombre del archivo de cada pantalla tiene el estilo de una línea 'seleccionada' invertida con el nombre del archivo citado allí.
Woot!
Creo que el método más conveniente para editar múltiples archivos es mediante el uso de pestañas. Puede abrir varios archivos en pestañas separadas a través de la línea de comando de esta manera:
vim -p file1.txt file2.txt
O si ya tiene vim abierto, puede abrir un nuevo archivo en una nueva pestaña de esta manera:
:tabe file2.txt
Una vez que tenga las pestañas abiertas, use gt
para ver la siguiente pestaña y gT
para ver la pestaña anterior.
También puede saltar a la primera pestaña con 1gt
, la segunda pestaña con 2gt
, etc.
Puedes cerrar pestañas usando :tabc
Finalmente, puede mover la pestaña actual a la n
ubicación th con :ntabm
donde n
cualquier número sea mayor o igual que 0
.
Hay muchas maneras de hacerlo. El primero, quizás el menos conveniente, es llamar vim
con los archivos que desea editar: crear:
vim first_file second_file ...
Llama a los dos archivos en dos buffers. Para cambiar de un archivo a otro, utilice :n
y :N
. Para enumerar los archivos que está editando, :args
hará el trabajo. :help buffer
te ayudará más en esto.
Esto debería responder a tu pregunta. Pero aquí hay más información:
Hay una manera de editar sus archivos de una manera más conveniente dividiendo la pantalla de su consola usando vim . Para hacer esto, abra dos cuadros con :split
( :sp
) o :vsplit
( :vs
) mientras usa vim . Luego navegue en estos cuadros usando la combinación Ctrl+ W> Ctrl+ W. También puede utilizar Ctrl+ W+ la flecha o la tecla ( H, J, Ko L) que corresponde al siguiente fotograma. Cuando haya terminado, edite el archivo que desee con :e file_name
. :help opening-window
te ayudará más en esto.
Ahora, si desea ver las diferencias entre los archivos, use el -d
argumento o llame al programa vimdiff (es lo mismo) con los archivos correspondientes. :help diff
te ayudará más en esto.
vim -d first_file second_file ...
Avísame si tienes algún problema.
Me gusta usar ventanas divididas, tanto horizontales como verticales, para editar múltiples archivos.
Yo uso tmux para administrar esas ventanas más fácilmente
https://tmux.github.io/ "¿Qué es un multiplexor de terminal? Le permite cambiar fácilmente entre varios programas en un terminal, desconectarlos (siguen ejecutándose en segundo plano) y volver a conectarlos a un terminal diferente. Y hacer un mucho más. Ver el manual ".
Ejemplo: mirar archivos o ejecutar pruebas a la derecha, editar pruebas y archivos fuente a la izquierda:
:e #(filename)
para alternar entre dos archivos abiertos
:p
para el archivo anterior
:n
para el siguiente archivo