2009-03-05 15 views
5

Attualmente utilizzo vim in una finestra telnet per modificare il codice (molto vecchia scuola!). C'è un sacco di codice sorgente (principalmente C), quindi uso tag, cscope ecc. Per andare in giro. Questo è ok per quanto va, ma la latenza della rete può rendere ogni sequenza di tasti "laggy", che non è così buona!Uso efficace di gvim su una rete

Mi piacerebbe utilizzare gvim sul mio PC Windows (o qualsiasi editor che può essere impostato fino a farlo) a:

  1. Modificare i file in remoto via FTP (gvim già in grado di farlo)
  2. Utilizzare un file TAGS che è memorizzato localmente o sul server (probabilmente è più efficiente utilizzarne uno sul server, quindi non è necessario FTP per ogni file in basso). Suppongo che la generazione del file e l'FTP alla posizione corretta sulla mia macchina locale siano ok.
  3. Eseguire i comandi della shell come se fossi nella directory del file sul server (make, vari script ecc.). Ho accesso ssh alla macchina, quindi non posso pensare che questo sarebbe un problema.

Sono un po 'familiare con vimScript, quindi non mi dispiace fare un po' di incollaggio. Ho pensato che non potevo essere l'unica persona che avesse mai voluto farlo - quindi chiedendo qui.

Come ho detto - se c'è un editor decente che ha questo "built-in", quindi non mi importa di passare!

risposta

6

È inoltre possibile utilizzare SSH per modificare il file in remoto con vim.

:e scp://remote.host.com/project/file 

e quindi utilizzare SSH per chiamare fare da remoto:

:!ssh remote.host.com '(cd project; make)' 

ctags

Per poter utilizzare ctags remoto, vorrei creare le tag di file in remoto e copia alla macchina locale e aggiungere scp: //remote.host.com/project/ a ogni nome di file in t etichetta i file. È possibile farlo con qualcosa come

:%s#^\(\w\+\)\t#\1\tscp://remote.host.com/project/# 

sul file di tag. Quindi quando si lavora su un file remoto si usa ': set tags = local_ctags/tags' per fare riferimento alla versione locale (modificata) del file di tag.

2

l'opzione 'tag' indica a Vim dove cercare il file TAGS, anche se non sono sicuro che Vim consenta i percorsi ftp: // o scp: // in questa opzione.

È possibile eseguire comandi su server utilizzando :!ssh ...

Ma non credi che sarebbe meglio usare uno dei sistemi di controllo del codice sorgente, il lavoro con i file in locale e poi mettere file aggiornati sul server?

2

Come montare localmente la directory remota? Puoi esportarlo come condivisione SMB, mount NFS o ci sono diversi equivalenti di filesystem SSH (sshfs) disponibili per Windows.

+0

Questa è una buona idea - l'unico svantaggio è che voglio eseguire programmi sul server non sul mio computer locale, quindi sarà probabilmente necessario un qualche tipo di hacking di ssh. –

+0

Ehmm .. Anche altre soluzioni proposte qui presentano questo problema. – kyku