2009-03-05 20 views
5

Actualmente uso vim en una ventana de telnet para editar código (¡muy antiguo!). Hay un montón de código fuente (principalmente C), así que uso etiquetas, cscope, etc. para desplazarme. Esto está bien hasta donde llegue, pero la latencia de la red puede hacer que cada tecla sea "lenta", ¡lo cual no es tan bueno!Uso efectivo de gvim en una red

Me gustaría utilizar gvim en mi PC con Windows (o cualquier editor que puede ser configurado para hacer esto) a:

  1. Editar archivos de forma remota a través de FTP (gvim ya se puede hacer esto)
  2. Utilice un archivo TAGS que se almacena localmente o en el servidor (probablemente sea más eficiente usar uno en el servidor, entonces no tengo que FTP cada archivo). Supongo que generar el archivo y luego enviarlo por FTP a la ubicación correcta en mi máquina local estaría bien.
  3. Ejecutar comandos de shell como si estuviera en el directorio del archivo en el servidor (make, varios scripts, etc.). Tengo acceso ssh a la máquina, así que no puedo pensar que esto sea un problema.

Estoy un poco familiarizado con vimscript, así que no me importa hacer un poco de pegamento. Pensé que no podía ser la única persona que alguna vez había querido hacer esto, por lo tanto preguntando aquí.

Como dije - si hay algún editor decente que tenga este "built-in", ¡entonces no me importa cambiar!

Respuesta

6

También puede usar SSH para editar su archivo de forma remota con vim.

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

y luego usar SSH para llamar a hacer de forma remota:

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

ctags

Para utilizar ctags remotamente, me gustaría crear las etiquetas archivo de forma remota y copia a la máquina local y agregue scp: //remote.host.com/project/ a cada nombre de archivo en t él etiqueta archivos. Puede hacer esto con algo como

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

en el archivo de etiquetas. Luego, cuando trabaje en un archivo remoto, use ': set tags = local_ctags/tags' para hacer referencia a la versión local (modificada) del archivo de etiquetas.

2

La opción 'etiquetas' le dice a Vim dónde buscar el archivo TAGS, aunque no estoy seguro de si Vim permite las rutas ftp: // o scp: // en esta opción.

Puede ejecutar comandos en el servidor usando :!ssh ...

Pero ¿no cree que sería mejor utilizar uno de los sistemas de control de origen, el trabajo con los archivos localmente y luego poner los archivos actualizados en el servidor?

2

¿Qué tal el montaje de directorio remoto localmente? Puede exportarlo como un recurso compartido SMB, montaje NFS, o hay varios equivalentes del sistema de archivos SSH (sshfs) disponibles para Windows.

+0

Esa es una muy buena idea, el único inconveniente es que quiero ejecutar programas en el servidor, no en mi máquina local, por lo que probablemente sea necesario algún tipo de piratería ssh. –

+0

Ehmm .. Otras soluciones propuestas aquí también tienen este problema. – kyku