Verwendung von Abkürzungen

7

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:

  1. Typ fpfür "Volldruck"
  2. Mit Punkt unmittelbar nach pin fp, Ausgabe C-x a g( add-global-abbrev)
  3. In der Minibuffer-Eingabeaufforderung für Global abbrev for "fp":setzen with np.printoptions(threshold=np.inf): print()und drücken<RET>
  4. Der Minibuffer wird beendet und bringt mich mit Punkt nach pin zu meinem ursprünglichen Puffer zurückfp
  5. 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-modeaktiviert sein, da dies nur für die automatische Erweiterung verwendet wird. Das Aktivieren wird übrigens abbrev-modeimmer noch nicht erweitert fp.

Ich bin ratlos für das, was ich falsch mache und würde mich über Ratschläge freuen!

Lorem Ipsum
quelle
2
Da Sie das Emacs-Dokument darüber gelesen, das Verhalten jedoch rückwärts interpretiert haben, sollten Sie Emacs über das Problem informieren und möglicherweise einen anderen Wortlaut vorschlagen : 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?
Drew

Antworten:

7

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:

  1. M-x define-global-abbrev
  2. fp
  3. with np.printoptions(threshold=np.inf): print()
Tyler
quelle
2

Wie wäre es mit

  1. Setzen Sie den Punkt unmittelbar nach p in fp.
  2. Problem C-x a i g(inverse-add-global-abbrev).
  3. Geben Sie ein with np.printoptions(threshold=np.inf): print()und drücken Sie RET.
  4. 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.

Marco Wahl
quelle