Hace un tiempo, discutimos cómo editar archivos remotos con el editor Vim en Linux. Usando ese método, editamos archivos almacenados en un sistema remoto a través de SSH sin tener que iniciar sesión en el sistema remoto. Hoy discutiremos un consejo similar de Vim:leer y escribir archivos remotos con Vim . A partir de la versión Vim 7.x, el complemento netrw.vim se instala como complemento estándar de forma predeterminada. Este complemento permite a los usuarios leer, editar, escribir y explorar archivos remotos a través de ftp, rcp, scp o http.
¿Qué es el complemento Netrw?
Para aquellos que se preguntan, Netrw (Lectura, escritura y navegación orientadas a la red) El complemento admite la edición local y remota, la lectura y la escritura de archivos a través de redes. También admite la exploración de directorios locales y remotos. Para obtener más detalles, escriba :help netrw dentro de su sesión vim. Avancemos y veamos cómo leer o escribir archivos almacenados en un sistema Linux remoto desde nuestro sistema local usando Vim.
Lea y escriba archivos remotos con Vim en Linux
Leer y escribir archivos remotos es casi lo mismo que editar archivos remotos.
Para leer un archivo remoto de nuestro sistema local, simplemente lo abrimos usando el comando:
$ vim scp://[email protected]/info.txt
Escriba q para salir del archivo.
Para escribir en el archivo remoto, simplemente ábralo como se muestra arriba y presione "i" para entrar en el modo de inserción y finalmente empezar a escribir en él. Una vez que haya terminado, presione ESC y escribe :wq para guardar y salir.
Lo que realmente sucede en segundo plano es que el archivo remoto se copia en el directorio "/tmp" de su sistema local mediante el comando scp. Y luego el archivo se abre para editarlo. Una vez que haya terminado, el comando scp vuelve a copiar el archivo en el sistema remoto.
Vea el contenido del archivo remoto desde su sistema local para verificar si el archivo ha sido realmente modificado usando el comando:
$ ssh [email protected] cat info.txt
Tenga en cuenta que si desea mencionar la ruta absoluta para el directorio en el host remoto, use barras inclinadas dobles (//) como se muestra en el siguiente comando:
$ vim scp://[email protected]//home/sk/Documents/info.txt
En caso de que ya haya cambiado el puerto SSH predeterminado por motivos de seguridad, debe mencionar explícitamente el puerto SSH como se muestra a continuación.
$ vim scp://[email protected]:2200/info.txt
Reemplace 2200 con su número de puerto SSH.
Si no tiene acceso ssh/scp, puede usar otros protocolos, por ejemplo, ftp , como a continuación.
$ vim ftp://[email protected]/path/to/file
Leer y escribir archivos remotos dentro de la sesión de Vim
Si ya está dentro de una sesión de Vim, puede leer y escribir archivos remotos usando Nread (NetRead) y Nwrite (NetWrite) comandos.
Abra el editor Vim en su sistema local usando el siguiente comando:
$ vim
Ahora estás dentro de la sesión de Vim. Para leer un archivo remoto desde la sesión local de Vim en un nuevo búfer, simplemente ejecute:
:e scp://[email protected]/info.txt
Alternativamente, puede usar el "Nread" comando como a continuación.
:Nread scp://[email protected]/info.txt
O,
:Nread "scp://[email protected]/info.txt"
Para obtener más detalles, escriba el siguiente comando dentro de la sesión de Vim:
:Nread ?
Después de leer el archivo, escriba :q para salir.
De manera similar, para escribir el archivo remoto, ejecute:
:e scp://[email protected]/info.txt
Presiona "i" para ingresar al modo de inserción y comienza a escribirlo/modificarlo.
También puede usar :w comando para crear y escribir archivos. Pero este comando solo creará un nuevo archivo vacío.
:w scp://[email protected]/info.txt
Después de escribir, presione ESC y escribe :wq para guardar y salir.
Alternativamente, use "Nwrite" comando para crear para escribir archivos como a continuación.
:Nwrite scp://[email protected]/info.txt
Para conocer más detalles sobre Nwrite, escriba lo siguiente en la sesión de Vim:
:Nwrite ?
Espero que esto ayude.
Lectura sugerida:
- Ejecutar comandos en sistemas Linux remotos a través de SSH