El uso de abreviaturas en Emacs es confuso. A pesar de leer el manual y el EmacsWiki , sigo teniendo problemas para usarlos.
Objetivo :
Defina una abreviatura rápida y desechable para una sola sesión de Emacs.
Ejemplo:
Cuando se usa Python y Numpy, las salidas a veces se acortan con puntos suspensivos:
array(['1007.65', '1007.63', '1007.66', ..., '993.40', '993.40', '993.57'],
dtype=object)
Para mostrar la matriz en su totalidad, debe emitir este bocado de una declaración:
with np.printoptions(threshold=np.inf): print(my_arr['field_name'])
¡Esto parece una situación perfecta para un abreviatura!
Esto es lo que hago:
- Escriba
fp
para "impresión completa" - Con punto inmediatamente después
p
enfp
, númeroC-x a g
(add-global-abbrev
) - En el indicador de minibúfer para
Global abbrev for "fp":
, ponerwith np.printoptions(threshold=np.inf): print()
y presionar<RET>
- El minibúfer sale y me devuelve a mi búfer original con un punto después
p
enfp
- Issue
C-x a e
(expand-abbrev
)
No pasa nada.
Si verifico list-abbrevs
, ahí está:
(global-abbrev-table)
"with np.printoptions(threshold=np.inf): print()" 0 "fp"
Entiendo que no necesito abbrev-mode
habilitarlo, ya que solo se usa para la expansión automática. Por cierto, la habilitación abbrev-mode
aún no se expande fp
.
¡Estoy perdido por lo que estoy haciendo mal y agradecería algunos consejos!
M-x report-emacs-bug
. Es probable que no seas la única persona que haya hecho esto al revés. ¿Quizás el documento debería incluir un ejemplo?Respuestas:
Definió su abreviatura hacia atrás: "con np.printoptions (umbral = np.inf): ¡print ()" se expandirá a "fp" con lo que ha hecho!
Para definir una abreviatura de varias palabras, debe hacer:
define-global-abbrev
fp
with np.printoptions(threshold=np.inf): print()
fuente
Qué pasa
C-x a i g
(inverse-add-global-abbrev).with np.printoptions(threshold=np.inf): print()
y presione RET.C-x a e
Por cierto, tengo el modo abreviado activado todo el tiempo y casi siempre ayuda y casi nunca se interpone en mi camino.
fuente