El plugin Netrw fue incluido como plugin estándar a partir de la versión 6 del conocido editor
Vim, esta extensión ofrecía la posibilidad de utilizar el editor para
navegar entre directorios y realizar operaciones de lectura y escritura de forma
remota bajo los protocolos Httpd, Ftp, Scp, Sftp, Fetch, Rcp, Rsync y Webdav.
La edición remota con Vim se puede especificar a la hora de ejecutarlo en una terminal o bien, desde su linea de comandos. Si se necesita de contraseña para acceder a un determinado servidor, el mismo vim nos la solicitará al intentar conectar, pero también es posible usar ficheros ".netrc" para Ftp o automatizar la autenticación mediante el uso de llaves en Ssh.
Editar remotamente con Vim desde la terminal, sin entrar al modo "Linea de comando".
Escribir remotamente lanzando vim desde la terminal (Httpd, Ftp, Scp, Sftp, Fetch, Rcp, Rsync y Webdav)
$ vim dav://servidor[:port]/path
$ vim fetch://[usuario@]servidor/path
$ vim ftp://[usuario@]servidor[[:#]port]/path
$ vim http://[usuario@]servidor/path
$ vim rcp://[usuario@]servidor/path
$ vim rsync://[usuario@]servidor[:port]/path
$ vim scp://[usuario@]servidor[[:#]port]/path
$ vim sftp://[usuario@]servidor/path
NOTA: Si en vez de indicar un fichero se indica solo el directorio, Vim nos mostrará un explorador de ficheros para que podamos ir navegando por el árbol de directorios y poder entrar a editar el archivo que se necesite. Si queremos indicar una ruta absoluta debemos utilizar las dos barras "//" entre el servidor y el path.
Editar remotamente con Vim entrando al modo "Linea de comando" del editor.
Vim es un editor modal, lo que significa que se puede trabajar en diferentes modos para realizar una tarea determinada, el que nos interesa para la edición en remoto es el modo "Línea de comandos", al cual se accede pulsando la tecla "Esc" +":". Tras los dos puntos se pueden introducir comandos complejos para todo tipo de funciones, los que veremos a continuación son los comandos para realizar las labores de edición remota de ficheros (Leer, Crear y Editar). Algunos de ellos van a requerir del uso de .Netrc para automatizar el tema de credenciales.
Comandos que nos interesan para escribir remotamente con Vim (:e / :Nread / :Nwrite)
- Editar ficheros ya creados:
Webdav (cadaver)
:e dav://servidor[:port]/path
Fetch
:e fetch://[usuario@]servidor/path
Ftp (.netrc)
:e ftp://[usuario@]servidor[[:#]port]/path
Http (Wget)
:e http://[usuario@]servidor/path
Rcp
:e rcp://[usuario@]servidor/path
Rsync
:e rsync://[usuario@]servidor[:port]/path
Scp
:e scp://[usuario@]servidor[[:#]port]/path
Sftp:
:e sftp://[usuario@]servidor/path
- Lectura de ficheros:
Muestra la ayuda
:Nread ?
Rcp:
:Nread "servidor:path"
Ftp .netrc
:Nread "servidor path"
Ftp
:Nread "servidor id password path"
Webdab
:Nread "dav://servidor[:port]/path"
Fetch
:Nread "fetch://[usuario@]servidor/path"
Ftp (.netrc)
:Nread "ftp://[usuario@]servidor[[:#]port]/path"
Http (Wget)
:Nread "http://[usuario@]servidor/path"
Rcp
:Nread "rcp://[usuario@]servidor/path"
Rsync:
:Nread "rsync://[usuario@]servidor[:port]/path"
Scp
:Nread "scp://[usuario@]servidor[[:#]port]/path"
Sftp
:Nread "sftp://[usuario@]servidor/path"
- Escritura de ficheros(Sobreescribe)
Este comando escribe, pero no permite editar el fichero, solo lo crea. Debemos tener cuidado con este comando ya que de existir el fichero lo sobrescribe en blanco.
Ayuda
:Nwrite ?
Rcp
:Nwrite "servidor:path"
Ftp (.netrw)
:Nwrite "servidor path"
Ftp
:Nwrite "servidor id password path"
Webdab (cadaver)
:Nwrite "dav://servidor[:port]/path"
Ftp (.netrw)
:Nwrite "ftp://[usuario@]servidor[[:#]port]/path"
Rcp
:Nwrite "rcp://[usuario@]servidor/path"
Rsync
:Nwrite "rsync://[usuario@]servidor[:port]/path"
Scp
:Nwrite "scp://[usuario@]servidor[[:#]port]/path"
Sftp:
:Nwrite "sftp://[usuario@]servidor/path"
NOTA: HTTP NO está soportado para escribir
- Navegación de directorios:
Navegación con posibilidad de editar ficheros:
:e [protocol]://[usuario]@servidor/path/
Navegación sin posibilidad de editar ficheros:
:Nread [protocol]://[usuario]@servidor/path/
Acceso al árbol de directorios local:
:e /some/path/to/a/directory
Ejemplo de ruta relativa y absoluta, estos dos comandos hacen exactamente lo mismo.
$ vim scp://[email protected]/lista_peliculas.txt
$ vim scp://[email protected]//home/busi/lista_peliculas.txt
Fuente: http://www.busindre.com/