Acho que usar abrevs no Emacs é confuso. Apesar de ler o manual e o EmacsWiki , continuo tendo problemas para usá-los.
Objetivo :
Defina uma abreviação rápida e descartável para uma única sessão do Emacs.
Exemplo:
Ao usar Python e Numpy, às vezes as saídas são encurtadas com reticências:
array(['1007.65', '1007.63', '1007.66', ..., '993.40', '993.40', '993.57'],
dtype=object)
Para exibir a matriz na íntegra, você precisa emitir esta boca cheia de uma declaração:
with np.printoptions(threshold=np.inf): print(my_arr['field_name'])
Parece uma situação perfeita para uma abreviação!
Aqui está o que eu faço:
- Digite
fp
para "impressão completa" - Com ponto imediatamente após
p
emfp
, issueC-x a g
(add-global-abbrev
) - No prompt do minibuffer
Global abbrev for "fp":
, coloquewith np.printoptions(threshold=np.inf): print()
e pressione<RET>
- O minibuffer sai, retornando-me ao meu buffer original com point after
p
infp
- Edição
C-x a e
(expand-abbrev
)
Nada acontece.
Se eu verificar list-abbrevs
, existe:
(global-abbrev-table)
"with np.printoptions(threshold=np.inf): print()" 0 "fp"
Meu entendimento é que não preciso abbrev-mode
habilitar, pois isso é usado apenas para expansão automática. Aliás, ativar abbrev-mode
ainda não se expande fp
.
Estou perplexo pelo que estou fazendo de errado e gostaria de receber alguns conselhos!
M-x report-emacs-bug
. É provável que você não seja a única pessoa que conseguiu esse retrocesso. Talvez o documento deva incluir um exemplo?Respostas:
Você definiu sua abreviação para trás - "com np.printoptions (threshold = np.inf): print ()" será expandido para "fp" com o que você fez!
Para definir uma abreviação com várias palavras, faça o seguinte:
define-global-abbrev
fp
with np.printoptions(threshold=np.inf): print()
fonte
A respeito
C-x a i g
(inverse-add-global-abrev).with np.printoptions(threshold=np.inf): print()
e pressione RET.C-x a e
BTW eu sempre abbrev-mode ligado o tempo todo e quase sempre ajuda e quase nunca fica no meu caminho.
fonte