GNU/Linux >> Tutoriales Linux >  >> Linux

Consejos de Vim:edite archivos remotos con Vim en Linux

Vim es uno de los mejores editores de texto altamente configurables que viene con muchas características únicas que no puede encontrar en otros editores de texto. Hoy, discutiremos una de las características útiles:editar los archivos del sistema remoto desde el sistema local . Es decir, podemos editar un archivo almacenado en un sistema Linux remoto sin tener que iniciar sesión en él a través de SSH o cualquier otro método. Antes de conocer este truco, por lo general entro SSH en el sistema remoto y luego edito los archivos. Sin embargo, también hay una forma de editar archivos remotos con Vim desde su sistema local. A partir de la versión Vim 7.x, el complemento netrw.vim se instala como un complemento estándar. Este complemento le permite editar archivos 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 editar archivos almacenados en un sistema Linux remoto desde nuestro sistema local usando Vim.

Editar archivos remotos con Vim en Linux

Editar un archivo remoto con Vim es muy simple:

vim scp://[email protected]//path_to_file

Ejemplo:

Tengo un archivo de texto llamado info.txt en mi sistema remoto con la siguiente línea.

Welcome to OSTechNix

Ahora voy a editar ese archivo, haré algunos cambios en él y luego guardaré y cerraré el archivo. ¡Todo desde mi sistema local!

Para hacerlo, simplemente ejecuto el siguiente comando:

$ vim scp://[email protected]/info.txt

Aquí está la demostración visual de la tarea anterior:

Aquí, debes prestar atención a las siguientes tres cosas.

1. [correo electrónico protegido] (Por ejemplo, [email protected]) - Aquí sk es el nombre de usuario del sistema remoto. 192.168.225.22 es la dirección IP del sistema remoto.

2. Barra simple (/) - Si desea editar un archivo que está almacenado en $HOME directorio de un sistema remoto, debe usar una barra diagonal final para separar la dirección IP o el nombre de host del sistema remoto de la ruta del archivo. En el caso anterior, almacené el archivo info.txt en el directorio $HOME, por lo que usé una sola barra inclinada.

3. // (Doble barra) - Para especificar la ruta completa de un archivo, debe usar barras inclinadas dobles. Se utiliza una barra inclinada (/) para separar la dirección IP o el nombre de host del sistema remoto de la ruta del archivo real. Y la otra barra inclinada se usa para mencionar la ruta absoluta (completa) del archivo remoto. Por ejemplo, digamos que está editando un archivo llamado info.txt que se encuentra en /home/sk/Documents/ directorio de su sistema remoto. En este caso, el comando sería:

$ vim scp://[email protected]//home/sk/Documents/info.txt

Tenga en cuenta las barras dobles entre la dirección IP del sistema remoto y la ruta del archivo. Solo se requieren barras dobles cuando se menciona la ruta absoluta de un archivo remoto.

Verifique el contenido del archivo remoto desde su sistema local:

$ ssh [email protected] cat info.txt
[email protected]'s password: 
Welcome to OSTechNix blog

¿Ver? He agregado una palabra adicional "blog" en el archivo info.txt.

Algunas veces, es posible que haya cambiado el puerto SSH predeterminado por motivos de seguridad. En ese caso, mencione 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

Entonces, ¿qué está sucediendo en el fondo?

Cuando edita el archivo remoto desde su sistema local usando el siguiente comando;

$ vim scp://[email protected]/info.txt

Es posible que haya notado el siguiente resultado en la parte inferior de su editor de Vim:

:!scp -q '[email protected]:info.txt' '/tmp/vsoDT6K/0.txt'
"/tmp/vsOLzGf/0.txt" 1L, 21C

Significado:el comando scp copia el archivo solicitado del sistema remoto y lo guarda en /tmp directorio de su sistema local y luego lo abre para editarlo. Después de completar la edición, el archivo se vuelve a cargar en el sistema remoto mediante el comando scp.

Editar archivos remotos dentro de la sesión de Vim

Si ya está dentro de una sesión de Vim, puede editar archivos remotos desde su sistema local como se muestra a continuación.

Abra el archivo desde dentro de Vim en un nuevo búfer ejecutando el siguiente comando:

:e scp://[email protected]/info.txt

Haz los cambios en el archivo y presiona ESC clave y escriba :wq para guardar y cerrar el archivo.

Eche un vistazo a la siguiente demostración visual.

Como puede ver en el resultado anterior;

  • Abrí el editor Vim desde mi sistema local,
  • Luego abrí el archivo remoto llamado info.txt dentro de la sesión de Vim en un nuevo búfer,
  • Y luego hice algunos cambios en el archivo,
  • Finalmente, guardó los cambios y cerró el archivo (ESC y :wq).

También puede abrir el archivo en una nueva pestaña ejecutando:

:tabe scp://[email protected]/info.txt

Espero que esto ayude. Publicaré más consejos de Vim en los próximos días. ¡Sigue visitando!

Lectura sugerida:

  • Consejos de Vim:lea y escriba archivos remotos con Vim en Linux
  • Ejecutar comandos en sistemas Linux remotos a través de SSH

Linux
  1. Howto:Programación en C con archivos temporales en Linux

  2. Edición remota con editor local (Linux)

  3. ¿Cómo puedo editar todos los archivos devueltos por find in vi en Linux?

  4. ¿Cómo enumero archivos con rutas completas en Linux?

  5. Los archivos zip se expanden con barras invertidas en Linux, sin subdirectorios

Sugerencias para enumerar archivos con ls en la línea de comandos de Linux

Comando Cp en Linux (Copiar archivos)

Linux:Cómo compartir archivos en una red local con guau

Comando WC de Linux con ejemplos

Cómo cambiar el nombre de un archivo (s) en Linux

Consejos de Vim:lea y escriba archivos remotos con Vim en Linux