¿global-auto-revert-mode no parece funcionar?

7

Mi archivo init incluye

(setq global-auto-revert-mode t)

y puedo confirmar que es cierto con Ch v. Pero todavía tengo que revertir manualmente todos mis archivos con revert-buffer cada vez que cambio las ramas de git. Incluso llego a intentar guardar y obtener el mensaje "archivo cambiado en disco". ¿Alguna sugerencia sobre cómo depurar esto?

djechlin
fuente
Intente poner esto en su inicio en su lugar:(global-auto-revert-mode 1)
Kaushal Modi
@kaushalmodi sin suerte (me hubiera sorprendido mucho)
djechlin
¿Podría ser un problema con auto-revert-interval? Lo uso y funciona para mí, excepto los archivos sobre vagabundo.
Swarnendu Biswas
Parece un error que se introdujo en 24.5 y 25.0. @SwarnenduBis, ¿estás en emacs 24.4?
Kaushal Modi
@djechlin Verifiqué usando sesiones emacs -Q que el modo de reversión automática no funciona en emacs 24.5 y 25.0 pero funciona bien en 24.4. ¿En que versión estas?
Kaushal Modi

Respuestas:

15

Un modo menor no se habilita / deshabilita configurando una variable. La variable de modo menor debe usarse para verificar el estado de "modo habilitado", no para establecer el estado del modo. Si su valor es t, el modo menor está activado, de lo contrario, el modo está desactivado.


Consulte los fragmentos a continuación para ver cómo controlar cualquier modo menor. Reemplace MINOR-MODE-NAMEcon el nombre de modo menor real con el que está tratando ( global-auto-revert-namecomo es el caso en la pregunta).


Habilitar un modo menor

Usando elisp

Directamente

(MINOR-MODE-NAME)
;; or
(MINOR-MODE-NAME 1)

Basado en una activación de gancho

(add-hook 'SOME-HOOK #'MINOR-MODE-NAME)

Deshabilitar un modo menor

Usando elisp

Directamente

(MINOR-MODE-NAME 0)
;; or
(MINOR-MODE-NAME -1)

Basado en una activación de gancho

(add-hook 'SOME-HOOK (lambda () (MINOR-MODE-NAME -1)))

Alternar un modo menor

Interactivamente

M-x MINOR-MODE-NAME

Usando una atadura de teclas

(global-set-key (kbd "<KEY>") #'MINOR-MODE-NAME)

Usando elisp (no interactivamente)

(MINOR-MODE-NAME 'toggle)

Fuentes

Kaushal Modi
fuente
Me he encontrado con algunos modos en los que tienes que pasar t o nulo en lugar de números.
Joseph Garvin
@JosephGarvin ¿Podría valer la pena averiguar cuáles son esos modos ... y puede presentar un informe de error para corregir esa inconsistencia si de hecho se definen como modos menores?
Kaushal Modi
La respuesta es muy abstracta. No se como usarlo.
ctrl-alt-delor
@ ctrl-alt-delor ¿Cuál es el modo menor que estás tratando de controlar que te llevó a esta respuesta?
Kaushal Modi
El de la pregunta. ( global-auto-revert-mode)
ctrl-alt-delor
3

No establece la variable usando setq, llama a la función:

(global-auto-revert-mode)
djechlin
fuente
Me pregunto cómo es eso diferente (global-auto-revert-mode 1). Además, si está agregando esto a su init, ni siquiera debería necesitar ese argumento. Solo (global-auto-revert-mode)debería ser suficiente. Consulte la publicación del blog de Xah para obtener más información.
Kaushal Modi
Al igual que con cualquier modo definido usando define-global-minor-mode, los únicos valores válidos son números nil, y toggle. El hecho de que tfuncione solo se debe al hecho de que prefix-numeric-valueno se ahoga y lo trata como si fuera 1.
Lindydancer
@Lindydancer Sí, me gustaría que djechlin aclarara por qué pasar 1como argumento no funcionó .
Kaushal Modi
@kaushalmodi Todavía estaba configurando - pensé que solo estabas cambiando t a 1, pasé por alto el cambio de setq a llamar a la función.
djechlin
@djechlin Gracias por aclarar. Pero en aras de la claridad y la coherencia, se recomienda pasar un argumento 1o nada si desea habilitar ese modo menor de elisp en su init.
Kaushal Modi
1

la reversión automática solo funciona para buffers que no se modifican. Entonces, al menos para "intentar guardar y cambiar el archivo en el indicador de disco", el comportamiento que describe es normal.

Stefan
fuente
Abrí el mismo archivo simultáneamente en una instancia de emacs 25.0 y emacs 24.4 (ambos con -Qopción) y lo hice M-x global-auto-revert-modeen ambos. Desde la terminal cuando hice eco de alguna cadena ( echo 1234 >> somefile.txt) a ese archivo, solo el búfer emacs 24.4 se revertió automáticamente.
Kaushal Modi
Entonces por favor M-x report-emacs-bug.
Stefan
¡Hecho! error # 20441
Kaushal Modi
El "error" se resolvió por sí mismo ... probablemente era un problema con glib en mi sistema.
Kaushal Modi