Ich finde die Verwendung von Abkürzungen in Emacs verwirrend. Obwohl ich das Handbuch und das EmacsWiki gelesen habe , habe ich weiterhin Probleme, sie zu verwenden.
Ziel :
Definieren Sie eine schnelle Abkürzung für eine einzelne Emacs-Sitzung.
Beispiel:
Bei Verwendung von Python und Numpy werden die Ausgaben manchmal mit Auslassungspunkten gekürzt:
array(['1007.65', '1007.63', '1007.66', ..., '993.40', '993.40', '993.57'],
dtype=object)
Um das Array vollständig anzuzeigen, müssen Sie diesen Mund voll einer Anweisung ausgeben:
with np.printoptions(threshold=np.inf): print(my_arr['field_name'])
Dies scheint eine perfekte Situation für eine Abkürzung zu sein!
Folgendes mache ich:
- Typ
fp
für "Volldruck" - Mit Punkt unmittelbar nach
p
infp
, AusgabeC-x a g
(add-global-abbrev
) - In der Minibuffer-Eingabeaufforderung für
Global abbrev for "fp":
setzenwith np.printoptions(threshold=np.inf): print()
und drücken<RET>
- Der Minibuffer wird beendet und bringt mich mit Punkt nach
p
in zu meinem ursprünglichen Puffer zurückfp
- Ausgabe
C-x a e
(expand-abbrev
)
Nichts passiert.
Wenn ich nachschaue list-abbrevs
, ist es da:
(global-abbrev-table)
"with np.printoptions(threshold=np.inf): print()" 0 "fp"
Meines Wissens nach muss ich nicht abbrev-mode
aktiviert sein, da dies nur für die automatische Erweiterung verwendet wird. Das Aktivieren wird übrigens abbrev-mode
immer noch nicht erweitert fp
.
Ich bin ratlos für das, was ich falsch mache und würde mich über Ratschläge freuen!
M-x report-emacs-bug
. Es ist wahrscheinlich, dass Sie nicht die einzige Person sind, die dies rückgängig gemacht hat. Vielleicht sollte das Dokument ein Beispiel enthalten?Antworten:
Sie haben Ihre Abkürzung rückwärts definiert - "mit np.printoptions (Schwelle = np.inf): print ()" wird mit dem, was Sie getan haben, auf "fp" erweitert!
Um eine Abkürzung mit mehreren Wörtern zu definieren, sollten Sie Folgendes tun:
define-global-abbrev
fp
with np.printoptions(threshold=np.inf): print()
quelle
Wie wäre es mit
C-x a i g
(inverse-add-global-abbrev).with np.printoptions(threshold=np.inf): print()
und drücken Sie RET.C-x a e
Übrigens habe ich den Abkürzungsmodus die ganze Zeit eingeschaltet und es hilft fast immer und fast steht mir nie im Weg.
quelle