Sincronizar los archivos de un proyecto automáticamente en Sublime Text utilizando un directorio compartido con Samba

Actualmente, para mis desarrollos web trabajo sobre Windows 10 con Sublime Text y un directorio compartido con Samba que conecta con un servidor Ubuntu en local, donde tengo instaladas todas mis herramientas necesarias: PHP 7, MySQL/MariaDB, Composer, GIT, Bower, etcétera.

Cuando te encuentras en Windows y añades tu directorio como proyecto en Sublime Text, a la hora de generar nuevos archivos o directorios desde fuera del editor, ya bien sea directamente desde el explorador de Windows en un directorio de tu proyecto, o utilizando algún generador como la consola de Symfony, nos damos cuenta rápidamente de que estos nuevos archivos que han sido generados no aparecen en nuestro proyecto de Sublime Text, por lo menos hasta que volvemos a reiniciar Sublime Text, algo que es un verdadero rollo ya que Sublime Text a veces tarda demasiado en arrancar si tenemos varios proyectos en nuestro menú izquierdo.

En el foro oficial de Sublime Text, nos enteramos de que los directorios compartidos con Samba no envían por defecto el evento de notificación ReadDirectoryChangesW de la Win32API, por lo que a Sublime Text no le llega la notificación de que algún archivo ha cambiado.

Para solucionar este problema, debemos añadir el siguiente valor a nuestro archivo smb.conf.

En una distribución de Ubuntu, habría que seguir los siguientes pasos:

  1. Abre un terminal
  2. Edita el archivo de configuración
    sudo nano /etc/samba/smb.conf
  3. Añade la siguiente línea debajo de la línea que pone [global]
    change notify = yes
  4. Guarda los cambios y cierra el archivo
  5. Reinicia los servicios de Samba
    sudo service smbd restart
    sudo service nmbd restart
  6. Elimina tu proyecto en Sublime Text y vuelve a añadirlo.
  7. Voila. Tus proyectos ya se sincronizan en tu editor favorito.