pairing – Cómo definir pares específicos de modo adicionales para el modo de par eléctrico

Pregunta:

electric-pair-mode es un electric-pair-mode integrado para insertar automáticamente pares coincidentes de delimitadores (paréntesis, corchetes, etc.) según el modo principal actual.

Sé que puedo definir pares adicionales (que serán globales ) como este:

(push '(?\' . ?\') electric-pair-pairs)      ; Automatically pair single-quotes
(push '(?\' . ?\') electric-pair-text-pairs) ; ... in comments

Mi pregunta es , ¿cómo puedo definir pares específicos de modo (por ejemplo, // , == para org-mode )?

Respuesta:

Una manera fácil de hacer esto es creando electric-pair-pairs electric-pair-text-pairs búfer-locales y personalizándolos en ganchos para modos relevantes.

Ejemplo de trabajo para org-mode :

(defvar org-electric-pairs '((?/ . ?/) (?= . ?=)) "Electric pairs for org-mode.")

(defun org-add-electric-pairs ()
  (setq-local electric-pair-pairs (append electric-pair-pairs org-electric-pairs))
  (setq-local electric-pair-text-pairs electric-pair-pairs))

(add-hook 'org-mode-hook 'org-add-electric-pairs)

Tenga en cuenta que este enfoque se puede generalizar a otras situaciones en las que desee modificar el valor de una variable global para modos específicos.


Información adicional: setq-local

De la sección Creación y eliminación de enlaces locales de búfer del manual de Elisp :

Macro: value variable setq-local

Esta macro crea un enlace local de búfer en el búfer actual para VARIABLE y le da el valor local de búfer VALUE . Es equivalente a llamar a make-local-variable seguido de setq . VARIABLE debe ser un símbolo sin comillas.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım