Você pode usar SSHFS para montar uma casa remota em uma pasta local. Tem a vantagem de usar a infraestrutura atual e a baixa latência do vim local.
Atualmente estou fazendo isso por SSH em um servidor e executando o Vim no servidor. Isso tem o benefício de não ter que lidar com a sintaxe complicada de abrir arquivos de um servidor remoto por meio do SCP e, mais importante, poder navegar muito rapidamente pelo sistema de arquivos do servidor. Por outro lado, tem lag, o que dificulta a edição.
Qual é a maneira canônica de editar muitos arquivos remotos?
Você pode usar SSHFS para montar uma casa remota em uma pasta local. Tem a vantagem de usar a infraestrutura atual e a baixa latência do vim local.
Você pode editar remotamente com um vim ou gvim local.
:e scp://[email protected]/~/myfiles/whatever.file
scp
é um protocolo de cópia segura . Ele autentica da mesma forma que ssh
, portanto sua chave ssh precisa estar disponível, etc. Existem vários outros protocolos suportados (veja :help netrw-externapp
), mas scp é provavelmente o mais fácil se você já estiver usando ssh no mesmo lugar.
Você pode navegar pelos diretórios dessa forma, apenas certifique-se de que o caminho termine com /
. Caso contrário, o vim o transforma em um novo arquivo.
:w
grava automaticamente o arquivo via scp. Se a gravação falhar por algum motivo, você deve notar, já que eles serão um tipo de coisa "shell retornado 1" na barra de status. Entretanto, cuidado: se você não notar, o vim não sabe e isso pode ter consequências - por exemplo, se você sair agora, ele não irá avisá-lo. É particularmente fácil perder isso se você usa :wa
muito; Essa é a única ressalva que tenho.
Para os documentos oficiais, consulte :help netrw
.
Eu usaria o rsync. Transfere apenas o que mudou. Assim:
rsync -e ssh -va remoteuser@remotehost:remotedir .
edite os arquivos localmente, a seu próprio gosto. Zero atraso Você pode inspecionar todos os arquivos antes de enviá-los:
rsync -e ssh -va . remoteuser@remotehost:remotedir
Estou assumindo que você primeiro crie seu diretório local e cd
para isso.
Você também pode fazê-lo lidar com a remoção de arquivos, mas tenha muito cuidado com isso, porque executar isso no diretório errado poderia atacar uma árvore de diretórios inteira.
rsync -e ssh -va --delete . remoteuser@remotehost:remotedir
O que eu faço é executá-lo em "modo seco" primeiro, usando a sinalização 'n', assim:
rsync -e ssh -van --delete . remoteuser@remotehost:remotedir
Ele irá relatar o que teria feito, se fosse real. Se estiver satisfeito com a lista de relatórios, eu a executo novamente e removerei a sinalização 'n'.
O rsync é muito eficiente. Existem várias outras bandeiras também. É bem sofisticado.
Pode ser que você tenha escolhido a forma mais apropriada - forma SSH, mas ainda dependendo da natureza dos arquivos editados, você poderia alocar uma pequena partição, fazendo com que ela fosse compartilhada e colocar os arquivos lá, claro se a política de segurança permitir esta acção. Para esta sugestão você pode usar o NFS ou o Samba mais facilmente, mas ainda editar o arquivo de teste é uma concepção geral no UNIX e pode ser que você tenha que mantê-lo da maneira que você faz atualmente.
Tags networking vim files