emacs flymake

Cómo deshabilitar Emacs-Flymake para el modo html



(4)

Aquí está mi configuración de flymake en el archivo .emacs:

(when (load "flymake" t) (defun flymake-pyflakes-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy ''flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) (list "pyflakes" (list local-file)))) (add-to-list ''flymake-allowed-file-name-masks ''("//.py//'" flymake-pyflakes-init))) (add-hook ''find-file-hook ''flymake-find-file-hook) (load-library "flymake-cursor")

Quiero usar flymake solo para archivos .py. Y lo desactiva para el resto. pero siempre está habilitado. Por ejemplo, cuando abro un archivo html, siempre aparece el siguiente error: Error (flymake): Flymake: no se pudo iniciar el proceso de verificación de sintaxis ''xml'' con args (val /home/huseyin/vipsatis/templates/cancellation/base_flymake.html): Búsqueda para el programa: no existe tal archivo o directorio, xml. Flymake se apagará

Así que quiero apagarlo para cualquier cosa que no sean archivos py. ¿Es posible?

(Para las personas que tienen el mismo problema, quiero explicar el mensaje de error: Flymake usa xmlstarlet para la validación de xml y html. Y trata de llamarlo "xml val ......" pero tiene que llamarlo como "xmlstarlet val ...." para solucionar este problema, debe encontrar el archivo flymake.el y cambiar la llamada xml con xmlstarlet.)


Elimine la entrada HTML de la lista:

(delete ''("//.html?//'" flymake-xml-init) flymake-allowed-file-name-masks)


En el mensaje de error que recibe, le indica que no puede encontrar el xml herramienta de validación XML de línea de comandos. Puede solucionarlo instalando una herramienta de validación XML compatible ( xmllint que xmllint es la opción correcta).

Pero si realmente desea deshabilitar Flymake para archivos HTML y XML, no tiene que copiar todo el archivo flymake.el y cambiarlo. Simplemente añada esta línea a su archivo de inicio:

(defun flymake-xml-init ())

Esto anula la función que Flymake solicita para los archivos HTML y XML con una función vacía.


Ok lo tengo Esto es lo que hice: primero encontré el archivo flymake.el. (Si no lo tiene, probablemente tenga el archivo flymake.elc bajo la instalación de emacs. En ese caso, simplemente copie el archivo flymake.el en la ruta de carga, por lo que será utilizado en lugar de la versión compilada (archivo .elc) en la instalación). Encontré la siguiente función y comenté los enlaces .xml y .html.

(defcustom flymake-allowed-file-name-masks ''(("//.//(?:c//(?:pp//|xx//|//+//+//)?//|CC//)//'" flymake-simple-make-init) ;("//.xml//'" flymake-xml-init) ;("//.html?//'" flymake-xml-init) ("//.cs//'" flymake-simple-make-init) ("//.p[ml]//'" flymake-perl-init) ("//.php[345]?//'" flymake-php-init) ("//.h//'" flymake-master-make-header-init flymake-master-cleanup) ("//.java//'" flymake-simple-make-java-init flymake-simple-java-cleanup) ("[0-9]+//.tex//'" flymake-master-tex-init flymake-master-cleanup) ("//.tex//'" flymake-simple-tex-init) ("//.idl//'" flymake-simple-make-init) ;; ("//.cpp//'" 1) ;; ("//.java//'" 3) ;; ("//.h//'" 2 ("//.cpp//'" "//.c//'") ;; ("[ /t]*#[ /t]*include[ /t]*/"//([/w0-9///_/.]*[///]*//)//(%s//)/"" 1 2)) ;; ("//.idl//'" 1) ;; ("//.odl//'" 1) ;; ("[0-9]+//.tex//'" 2 ("//.tex//'") ;; ("[ /t]*//input[ /t]*{//(.*//)//(%s//)}" 1 2 )) ;; ("//.tex//'" 1) )

Otro comentario de líneas salidas ya estaba allí. Ahora flymake no funciona para archivos html y xml


Personaliza la variable denominada flymake-allowed-file-name-masks .

Puedes hacerlo así también:

M-x customize-variable RET flymake-allowed-file-name-masks RET