Estoy intentando usar inotifywait
para supervisar carpetas específicas y recompilar si es necesario. El problema es que estoy usando vim en gran medida, y cuando estoy editando en vim cualquier archivo modificado en realidad desencadena algunos eventos redundantes '', algo así como:Demasiados eventos de inotify mientras se edita en vim
:w
sass/somefolder/ CREATE 4913
sass/somefolder/ CREATE some
sass/somefolder/ MODIFY some
Me tomó un tiempo para darse cuenta de que en realidad todo lo está bien con inotifywait
- Intenté usar nano
y todo funcionó como se esperaba, solo se activó "MODIFICAR", y solo una vez.
He intentado editar (solo para fines de prueba, no me juzguen demasiado) Emacs y también hay problemas con Emacs: cada vez que presiono Ctrl-X + Ctrl + S activan MODIFY 3 veces .
La pregunta es ¿cómo puedo resolver problemas con eventos superfluos en vim? Por favor, directory
y backupdir
en mi .vimrc
no están en la carpeta que se monitorea.
UPD: This link explains por qué suceden cosas en realidad, pero todavía no tengo ni idea de cómo solucionarlo. Bueno, por supuesto que puedo ignorar 4913 que contiene la secuencia, pero esto es demasiado kludgy incluso para alguien que intenta utilizar inotify para compilar SASS)))
UPD: Versión VIM es 7.3.429
gracias por esta respuesta. '-e close_write' es definitivamente mejor, pero solo resuelve el problema con múltiples modificaciones, pero no con el misterioso' sass/somefolder/CLOSE_WRITE, CLOSE 4913' event – shabunc
Puedes ignorar eventos en directorios ...si tiene 'inotifywait', espere que salga la ruta, puede hacer que su script verifique si es un directorio (' [-d ...] ') y solo active sus acciones si los archivos son modificados. – larsks
De forma predeterminada, cuando vim guarda un archivo, crea uno nuevo y lo escribe, y cuando está seguro de que se escribió correctamente, elimina el archivo anterior y cambia el nombre del nuevo. Esta podría ser la causa de algunos eventos espurios. Puedes desactivar esto con 'set nowritebackup'. Ver ': help backup-table' y amigos. –