Navegando usando SSH

10

Sé que se puede usar vim scp://host/path/to/filepara editar archivos remotos localmente y luego actualizar la máquina remota al guardar ( :w). Sin embargo, me gustaría saber si es posible navegar a través de directorios usando ssh (o si hay un complemento para hacerlo)

NERDTree no lo admite, y cuando viming en una carpeta, aunque netrw me permite navegar en directorios, abrir un archivo no funciona.

lesurp
fuente

Respuestas:

13

En lugar de apuntar Vim / Netrw a un archivo:

scp://host/path/file

apúntelo a un directorio:

scp://host/path/

Esto le ofrece la misma lista y los mismos accesos directos que si estuviera navegando en su máquina.

romainl
fuente
¿Has intentado esto cuando remotas desde tu Unixmáquina para acceder a las carpetas en una máquina con Windows? Acabo de intentarlo vim scp://[email protected]//C:/Users/user/Desktop/tmp/, y me dio una pantalla en blanco, con el error 'ls' is not recognized as an internal or external commandcuando lo intento: vim scp://[email protected]//C:/Users/user/Desktop/tmp/filename... funciona bien.
alpha_989
A partir de esto, parece que vimestá emitiendo un comando ls, cuando inicia sesión en la computadora remota ... y debido a que es una computadora con Windows ... no hay ls... y el comando falla. ¿Es posible que vim atraviese windowsdirectorios a través de ssh usando un netrwcomplemento u otra cosa? Yo usoVIM 8.1
alpha_989
2
Tenga en cuenta que la barra diagonal posterior scp://host//path/es necesaria para que esto funcione; de lo contrario, vim intentará abrir la ruta como un archivo normal, que se cargará en blanco.
koyae
1

¡Vaya, olvidé que tenía esta pregunta abierta!

Entonces, el problema era que, con la versión netrw que tenía (empaquetada con vim-gnome en Debian Jessie), modificar un archivo desde el explorador (a través de ssh) no usaría el URI correcto (de memoria, la '@' en el ' faltaba usuario @ host '). Abrió un archivo vacío (porque no encontró nada) pero aún así guardó el nuevo archivo usando el buen URI (sobrescribiendo efectivamente el archivo original).

La respuesta de @ user21497 también me ayudó porque nunca encontré ese acceso directo de 'nuevo archivo', lo cual es bastante útil porque usar ': e' crea el archivo localmente.

Finalmente, esta pregunta me ayudó a navegar mejor usando netrw (volver al explorador después de abrir un archivo usando: Ex)

Gracias por su ayuda chicos !

lesurp
fuente
0

No estoy seguro de lo que quiere decir con "notificar nuevo archivo"; si desea crear un nuevo archivo, cuando navegue a través de scp: // hostname / directory, simplemente presione "%" como lo haría en un directorio local para crear un nuevo archivo. Ver: ayuda netrw-%. Puede crear un directorio usando d (: help netrw-d). Si desea modificar un archivo ya existente, selecciónelo con el cursor sobre el nombre del archivo en la pantalla siguiente y presione <cr>(también hay otros métodos de selección, incluidos v, o, t, etc.). Consulte: ayuda netrw-quickmap para obtener una descripción general de esto. Acabo de probar esto y no obtuve un archivo vacío (cuando ya existía). Un nuevo archivo, por supuesto, estará vacío.

usuario21497
fuente