Uso eficaz de GVIM em uma rede
Pergunta
Atualmente, uso o VIM em uma janela Telnet para editar o código (escola muito antiga!). Há muito código -fonte (principalmente C), então eu uso tags, cscope etc. para me locomover. Tudo bem, tanto quanto é, mas a latência da rede pode fazer com que todos os teclas "lagy", o que não é tão bom!
Eu gostaria de usar o GVIM no meu PC do Windows (ou qualquer editor que possa ser configurado para fazer isso) para:
- Editar arquivos remotamente via FTP (GVIM já pode fazer isso)
- Use um arquivo de tags que seja armazenado localmente ou no servidor (provavelmente mais eficiente para usar um no servidor, então não preciso FTP todos os arquivos). Suponho que gerar o arquivo e depois para o local adequado na minha máquina local ficaria bem.
- Execute os comandos do shell como se eu estivesse no diretório do arquivo no servidor (faça, vários scripts etc.). Eu tenho acesso SSH à máquina para que não pense que isso seria um problema.
Estou um pouco familiarizado com o VimScript, então não me importo de colar um pouco. Eu pensei que não posso ser a única pessoa que já quis fazer isso - perguntando aqui.
Como eu disse - se houver um editor decente que tenha esse "embutido", não me importo de mudar!
Solução
Você também pode usar o SSH para editar seu arquivo remotamente com o VIM.
:e scp://remote.host.com/project/file
E depois use o SSH para chamar FAZER RETOTEMENTE:
:!ssh remote.host.com '(cd project; make)'
ctags
Para ser usado ctags remotamente, eu criaria o Tag Arquive remotamente e copie -o para a máquina local e adicione scp: //remote.host.com/project/ para cada nome de arquivo nos arquivos tags. Você pode fazer isso com algo como
:%s#^\(\w\+\)\t#\1\tscp://remote.host.com/project/#
no arquivo de tags. Então, ao trabalhar em um arquivo remoto que você usa ': set tags = local_ctags/tags' para fazer referência à versão local (modificada) do arquivo tags.
Outras dicas
A opção 'Tags' informa ao VIM onde procurar arquivo de tags, embora eu não tenha certeza se o VIM permite ftp: // ou scp: // caminhos nesta opção.
Você pode executar comandos no servidor usando :!ssh ...
Mas você não acha que seria melhor usar um dos sistemas de controle de origem, trabalhar com arquivos localmente e colocar arquivos atualizados no servidor?
Que tal montagem do Diretório Remoto Localia? Você pode exportá -lo como um compartilhamento SMB, o NFS Mount ou existem vários equivalentes do SSH FileSystem (SSHFS) disponíveis para o Windows.