¿Cuál es la mejor manera de editar archivos remotos desde Emacs?

# Vagabundo (solo Emacs)
Solía ​​ser un gran admirador de Tramp, hasta que descubrí que tenía un retraso perceptible y no funcionaba con complementos como flycheck. (flycheck / flycheck)

# Basado en montaje
Luego probé una solución basada en montaje (trabajando directamente en el disco montado), que resultó tener su propia locura (por ejemplo, git no funciona bajo el disco montado de Transmit), más un retraso perceptible.

Para los usuarios de Mac, recomendaría Expandrive y Transmit.

# File Watcher + sincronización basada
Inspirado por el complemento SFTP (en Sublime Text), comencé a buscar soluciones basadas en la herramienta de sincronización y cambio de archivos. Básicamente, cada vez que guarde un archivo, el observador notificará a la herramienta de sincronización que tome medidas.

Lo intenté:
– pmcjury / guard-remote-sync
– jedrichards / grunt-rsync
– axkibe / lsyncd
– alandipert / fswatch + unison (o rsync)

Ahora estoy felizmente establecido con fswatch + unison . Unison es genial porque admite sincronización bidireccional. Así que también puedo buscar un nuevo archivo del servidor cuando sea necesario. Para obtener más detalles, consulte ¿Por qué es Unison mejor que rsync?

Estas herramientas naturalmente funcionan bien con el protocolo ssh. Si necesita trabajar con otros protocolos (por ejemplo, samba), puede combinarlos con una solución basada en montaje. Además, son editores / IDE neutrales (por lo tanto, basados ​​en montaje y VCS, como se menciona más adelante) y puede trabajar sin conexión.

Miro y sincronizo un directorio completo de “proyectos” con el control remoto, para poder trabajar en cualquier proyecto específico y se sincroniza automáticamente.

# Sistema de control de versiones basado
Las soluciones basadas en VCS (por ejemplo, git) son interesantes, pero a menudo tengo que probar mi prototipo en el servidor sin comprometerme. Para este tipo de solución, podría considerar acompañar un script de implementación automática, por ejemplo, http://docs.fabfile.org/en/1.9/t…

Detuve esto al construir mis propios emacs en mi directorio local en el servidor remoto, y luego usarlo en la terminal. Funciona mucho mejor que todas las otras cosas que probé.

Otra posibilidad potencial es usar sshfs (que es en lo que se basa MacFUSE), pero ajustar las opciones que puede tomar (y SSH).

Otro más es tener un caché local que se sincronice periódicamente con el directorio remoto. Probablemente podría configurar esto basado en rsync o git.

Tramp realmente no debería estar congelando Emacs, y es, con mucho, la mejor solución. Debe haber un error en algún lugar de su configuración. ¿Tal vez su shell remoto tarda demasiado en iniciarse? ¿Emacs imprime algún error?

Tramp funciona bien para mí, con los siguientes cambios:

(setq tramp-default-method "ssh") (setq tramp-auto-save-directory "~/tmp/tramp/") (setq tramp-chunksize 2000) 

Chunksize es realmente una solución alternativa para problemas en uno de mis objetivos. El directorio tramp-auto-save-realmente me ahorró algunos puestos cuando se inició el autoguardado.

Además, hago lo siguiente con ssh:

  Anfitrión *
          ControlMaster auto
          ControlPath ~ / tmp / .ssh-control-% r-% h-% p

Luego mantengo una conexión con el servidor. Esto tendrá un vagabundo en las conexiones existentes. El tiempo de conexión cae al suelo (en algunos casos, tengo máquinas que tardan hasta un minuto en realizar una conexión inicial; las segundas conexiones son aproximadamente instantáneas).

More Interesting

¿Por qué mi página de destino no se está convirtiendo?

¿Por qué algunas páginas web tienen una larga cadena de valores confusos y cómo crearlos?

¿Cómo se puede mejorar la codificación en el front-end?

¿Por qué debería preocuparme por Node.js y cuáles son sus beneficios desde el punto de vista de un desarrollador front-end?

¿Debería poder escribir mis propios frameworks o bibliotecas antes de usar uno?

¿Cómo pongo instagram en mi sitio web?

¿Se debe usar el marco Zend? ¿Por qué o por qué no?

¿Puedo agregar un reproductor de video de YouTube en mi sitio web para reproducir mis videos personalizados colocados en mi servidor, sin tener que alojar mis videos en YouTube? Si es así, ¿cómo?

¿Cuál es la mejor herramienta para ayudar a diseñar los elementos puramente funcionales de un sitio web?

¿Funcionaría crear un sitio web de 'producto de la semana'?

Cómo hacer que una capa se muestre sobre otra en HTML / CSS

¿Qué sucedería si aumentara el tiempo máximo de ejecución (30 segundos) para PHP en mi sitio web (256M de memoria)?

¿Cuáles son las ventajas y desventajas de crear una aplicación con Vue, React o Angular 2 en el lugar A en MEAN? ¿Se pueden intercambiar tan fácilmente y lograr los mismos objetivos?

Como un pase reciente, ¿qué debo elegir primavera o griales?

Al buscar un trabajo en una agencia, ¿qué criterios deben buscar los desarrolladores front-end que les permitan alcanzar sus esperanzas y sueños (aparte del dinero)?