Digamos que tengo un archivo llamado file.txt. En él está el nombre de un archivo que quiero editar con vi. Quiero hacer algo como esto para poder editar el archivo:
cat file.txt | vi
Sin embargo, eso no funciona. ¿Cómo puede hacerse esto?
Para aclarar cosas:
Aquí están los contenidos de file.txt:
textfile
Por lo tanto, quiero enviar de alguna manera el contenido de file.txt a vi para que ocurra lo mismo que cuando escribo vi textfile
.
El contenido de file.txt puede cambiar. Quiero que vi edite cualquier archivo que esté listado en file.txt.
vi file.txt
. ¿Hay algo más avanzado que intentas hacer?xclip
y luego usarxclip -o
para acceder al portapapeles en el shell en x11. en caso de que los va a cambiarpbpaste
...Respuestas:
podrías probar esto:
o, para evitar el uso inútil de gato:
le estás diciendo a vi (m) solo un montón de cosas arbitrarias. si desea que vi (m) haga algo como 'oye, abra ese archivo', debe alimentarlo con los mismos comandos que usaría en vi (m), por ejemplo. algo parecido
:e foo.txt
. pero eso es más complicado que hacer lo que propuse.fuente
vi $(cat file.txt)
Al menos para vim (no estoy seguro acerca de vi), puedes hacer
El '-' le dice a vim que lea desde stdin.
fuente