linux - tutorial - vim pdf
redirección y vim (10)
Me preguntaba si hay una forma de ver el resultado de cualquier comando, directamente dentro de vim, en lugar de redirigirlo primero a un archivo y luego abrir ese archivo.
Por ejemplo, necesito algo como $ gvim < diff -r dir1/ dir2/
Esto da un mensaje de error de redireccionamiento ambiguo
Solo quiero ver las diferencias entre dir1 y dir2 directamente dentro de gvim.
¿Puede alguien proporcionar un buen truco?
Además, cuando ya está en Vim:
:r! diff file1 file2
Aunque también sugeriría vimdiff
o vim -d
para el caso de mirar un diff, solo tengo que compartir este enfoque (más general) para usar el uso de vim en pipes: vipe (del paquete moreutils
en Ubuntu).
Por ejemplo:
find -name ''* .png'' | vipe | xargs rm
le permitiría editar primero (en vim) la lista de archivos .png encontrados antes de pasarla a xargs rm
.
Por cierto, hay un complemento DirDiff .
jst use gvimdiff en su lugar
o vimdiff
pegar la salida de un comando directamente en vim, por ejemplo ls, try
:% r! ls
vim -d file1 file2
diff file1 file2 | vim -R -
El -R
hace de solo lectura para que no modifique accidentalmente la entrada (que puede ser o no el comportamiento deseado). El guión único le dice a vim
que lea su entrada sobre la entrada estándar. Funciona para otros comandos, también.
Puedes hacer esto con
diff -r dir1/ dir2/ | gvim -
la opción '' -
'' de vim (o gvim) le dice a vim que abra STDIN
A menudo uso vimdiff -g <file1> <file2>
Una de las maneras más simples y convenientes es hacerlo así:
vimdiff -R <file1> <file2>
De nuevo, el indicador ''-R'' es abrirlo para el modo de solo lectura para evitar cualquier cambio accidental.
Lo que estás buscando se llama sustitución de procesos :
vim <(diff -r dir1/ dir2/)
Pero el complemento DirDiff mencionado por Luc es mucho más útil para comparar directorios.