Navegando usando SSH

10

Sei que alguém pode usar vim scp://host/path/to/filepara editar arquivos remotos localmente e atualizar a máquina remota ao salvar ( :w). No entanto, gostaria de saber se é possível navegar pelos diretórios usando o ssh (ou se há um plugin para fazer isso)

O NERDTree não é compatível com ele e, ao criar um vim em uma pasta, embora o netrw me permita navegar nos diretórios, abrir um arquivo não funciona.

lesurp
fonte

Respostas:

13

Em vez de apontar o Vim / Netrw para um arquivo:

scp://host/path/file

aponte-o para um diretório:

scp://host/path/

Isso fornece a mesma listagem e os mesmos atalhos como se você estivesse navegando na sua máquina.

romainl
fonte
você tentou isso quando remotamente da sua Unixmáquina para acessar pastas em uma máquina Windows .. Acabei de tentar vim scp://[email protected]//C:/Users/user/Desktop/tmp/e ele me deu uma tela em branco, com o erro 'ls' is not recognized as an internal or external commandao tentar: vim scp://[email protected]//C:/Users/user/Desktop/tmp/filename.. funciona bem.
Alpha_989
A partir disso, parece que vimestá emitindo um comando ls, quando ele faz logon no computador remoto .. e porque é um computador com Windows .. não existe ls.. e o comando falha. É possível que o vim atravesse windowsdiretórios pelo ssh usando o netrwplugin ou algo mais? Eu estou usandoVIM 8.1
alpha_989
2
Observe que a barra posterior scp://host//path/é necessária para que isso funcione; caso contrário, o vim tentará abrir o caminho como um arquivo regular, que será carregado em branco.
koyae
1

Opa, esqueci que essa pergunta estava aberta!

Portanto, o problema era que, com a versão netrw que eu tinha (empacotada com vim-gnome no Debian Jessie), modificar um arquivo do explorer (através do ssh) não usaria o URI correto (da memória, o '@' no ' usuário @ host 'estava ausente). Ele abriu um arquivo vazio (porque não encontrou nada), mas ainda salvou o novo arquivo usando o bom URI (sobrescrevendo efetivamente o arquivo original).

A resposta do @ user21497 também me ajudou, porque eu nunca achei o atalho 'novo arquivo', o que é bastante útil porque usar ': e' cria o arquivo localmente.

Finalmente, essa pergunta me ajudou a navegar melhor usando o netrw (voltando ao explorer depois de abrir um arquivo usando: Ex)

Obrigado pela ajuda pessoal!

lesurp
fonte
0

Não sei ao certo o que você quer dizer com "notificar novo arquivo"; se você deseja criar um novo arquivo, ao navegar via scp: // nome do host / diretório, pressione "%" como faria em um diretório local para criar um novo arquivo. Veja: ajuda netrw-%. Você pode criar um diretório usando d (: help netrw-d). Se você deseja modificar um arquivo já existente, selecione-o com o cursor no topo do nome do arquivo na tela netrw e pressione <cr>(também existem outros métodos de seleção, incluindo v, o, t, etc.). Veja: help netrw-quickmap para uma visão geral sobre isso. Eu apenas tentei isso e não recebi um arquivo vazio (quando pré-existente). Um novo arquivo, é claro, estará vazio.

user21497
fonte