Como editar arquivos FTP com o VIM e evitar digitar o nome do host toda vez?

2

Eu preciso editar arquivos remotos com o vim, que estão em um servidor FTP. Não há acesso SSH ou SFTP. Apenas FTP. Eu tentei a sincronização via curlftpfs, os arquivos apareceram em um diretório local, mas eu não posso escrever para eles, eu recebo todos os tipos de erros, e quando eu consigo escrever arquivos com finais aleatórios são gerados no servidor. index.php escreve no servidor como index.phz, index.phy, etc ...

Eu tinha sublime o texto 2 instalado, mas não posso mais executá-lo depois que eu instalei novos drivers para minha placa gráfica. Eu também tentei n ++ com WINE, mas não tive sorte em abrir arquivos FTP que estão em um nível de diretório mais profundo.

Eu vi que existem várias abordagens com o vim para editar arquivos no FTP, mas cada um precisa digitar como: e link (com o plugin netrw). Eu realmente gostaria de evitar qualquer tipo de repetição, em vez de criar um mapeamento relativo. É estranho que não haja solução para o vim já que sua ferramenta de desenvolvedor na maior parte, sublime e npp já tem isso resolvido de maneira simples. digitar no mesmo nome de host / caminho etc. quebraria um princípio simples de DRY.

Idealmente, seria se eu pudesse armazenar os arquivos em cache localmente com alguma ferramenta de sincronização e enviá-los para o ftp mapeando o caminho local - > remoto, logo após o vim escreve em um arquivo, ou eu emito um comando de upload, etc (sem ter que digitar o arquivo aberto o tempo todo). Há muitos arquivos no servidor, então não consigo memorizá-los. É importante que eu os coloque em cache localmente para que eu possa acessá-los rapidamente e carregá-los com um simples comando.

Estou executando o Slackware 13,37 x64

    
por Keeper Hood 07.11.2012 / 11:10

5 respostas

3

Você pode usar o netrw para exibir o conteúdo de um diretório remoto com:

:e ftp://[email protected]/ <-- note the slash at the end.

de lá você pode abrir um arquivo em outra janela com P ou na janela atual com <CR> .

Não entre em pânico se perder a lista de arquivos: ela ainda está lá e você pode recuperá-la com :Rex .

Ou simplesmente use um cliente de FTP GUI como o Filezilla ou o gFTP e seu recurso "Editar em ...".

    
por 07.11.2012 / 11:39
1

Embora não seja possível usar nomes de arquivos relativos (porque o diretório de trabalho local é diferente), você pode usar os modificadores de nome de arquivo para se referir a arquivos relativamente:

:edit %:h/another.html
    
por 07.11.2012 / 12:04
0

Eu sinto sua dor, eu amo usar o vim, e com o cliente ftp, é quase como se você tivesse ssh. O fluxo de trabalho que eu uso é

  1. Faça login no servidor ftp usando o comando de abertura :e ftp://username@server/
  2. Crie uma nova guia da seleção atual :tab split
  3. Mover para a nova guia :tabn
  4. Navegue até o arquivo no vim
  5. Quando terminar de editar o arquivo, feche a guia :wq
  6. Repita a partir do passo 2

Descobri que isso funciona melhor.

As guias no Vim são ótimas, elas permitem que você tenha vários arquivos e você pode até mesmo retirar y e excluir d linhas entre arquivos abertos na mesma sessão. Muito legal.

    
por 13.04.2013 / 20:35
0

Se você usar vim ftp://hostname/path/ , obterá uma listagem de diretórios. Se você trabalha com esse host com frequência, talvez queira marcá-lo como favorito. Com o netrw v153j, você pode usar :NetrwMB filename(s) ; você pode usar mb para marcar o diretório atual; e você pode usar qb para listar os marcadores atuais (e o histórico). Marcadores e outros itens também estão disponíveis no menu do gvim. Para ir a um marcador, use gb .

Portanto, sugiro que você marque o diretório como favorito, retorne à listagem de diretórios por meio de :Rex ou gb e edite os arquivos listados.

    
por 13.06.2014 / 23:44
0

Eu sei que isso é antigo, mas outra opção é usar, e. curlftpfs (construção do Slackware aqui ) para montar o servidor FTP em um ponto de montagem e usar seu editor de texto local de sua escolha.

    
por 14.06.2014 / 01:08

Tags