¿Cómo puedo llegar electric-pair-mode
a no emparejar comillas (simples o dobles)? Todavía quiero que empareje todo lo demás (corchetes, llaves, etc.), solo que no comillas.
7
¿Cómo puedo llegar electric-pair-mode
a no emparejar comillas (simples o dobles)? Todavía quiero que empareje todo lo demás (corchetes, llaves, etc.), solo que no comillas.
electric-pair-inhibit-predicate
?electric-pair-inhibit-predicate
variable? Es desconocido para mis emacs 24.3.1elec-pair.el
.electric-pair-mode
,electric-pair-pairs
yelectric-pair-text-pairs
se utiliza para la personalización, peroelectric-pair-text-syntax-table
tiene prioridad. Un gancho que establece localmente estas variables debería ser suficiente para que esto funcione. Comprobaré si ese es el caso más tarde y publicaré una respuesta.Respuestas:
Agregue lo siguiente a su archivo de inicio de emacs:
Referencia de mi blog: https://www.topbug.net/blog/2016/09/29/emacs-disable-certain-pairs-for-electric-pair-mode/
fuente
emacs -Q
(emacs comenzó con la opción de línea de comando-Q
). Quizás algún otro paquete interfiere. El código funciona para mí con GNU Emacs 25.3.1 (x86_64-unknown-cygwin, GTK + Versión 3.22.20) de 2017-09-11.?\"
termina imprimiéndose como34
, es porque el"
carácter es el mismo que el entero34
. En Emacs, los caracteres son enteros positivos de cierto rango.GNU Emacs 24.3.1 (x86_64-redhat-linux-gnu) of 2016-01-13
.Parece que no puedes. Las diversas personalizaciones solo le permiten agregar pares.
Si está dispuesto a usar un paquete diferente para hacer su emparejamiento, puede probar smartparens . Puede establecer comillas para que no se emparejen de la siguiente manera:
fuente
electric-pair
se respetará el cierre existente abrazadera. Ensmartparens
, siempre se crea una nueva llave de cierre a menos que esté en modo estricto (que tiene otros efectos secundarios fuertes). Por ejemplo:|)
->(|)
enelectric-pair
versus|)
->(|))
en smartparens. El símbolo de la tubería|
representa el cursor.electric-pair
y tiene una llave de cierre cuatro líneas hacia abajo con solo un espacio en blanco entre su cursor y la llave de cierre y escribe esa llave de cierre, reemplazará la llave de abajo, haciendo que quede al ras con el cursor. Eso no sucede asmartparens
menos que esté en modo estricto. Este es un buen acceso directo al editar algo como lisp (o incluso algo como Python, sinceramente) porque reduce la sobrecarga cognitiva de formatear las expresiones s. Sin embargo, puede hacer que los frenos de equilibrio sean más confusos.electric-pair
también hereda sus pares de la tabla de sintaxis del modo actual, mientrassmartparens
que hay que programar explícitamente en cada par. Aunque podría estar equivocado sobre eso.Actualización: la respuesta de @ xuhdev es preferible ya que no interfiere con el código de Emacs.
Puede valer la pena una solicitud de función que tenga que personalizar. Por el momento, parece trivial modificar el código en cuestión.
Luego cargue su propia variante de la función de par eléctrico posterior a la inserción automática
Abra elec-pair.el y copie desde allí
Luego busque en el cuerpo cualquier
y eliminar el
?\"
de allí, es decirpero no eliminar? \ "en otros lugares (!)
y recargar, es decir, evaluar la función modificada.
Para recargar en la próxima sesión, colóquelo en un archivo "my-changed-stuff.el" y cárguelo desde su archivo init.
fuente