Um zu arbeiten, müssen Abkürzungen durch Leerzeichen getrennt werden. Wenn ich beispielsweise eine habe, iab fo FOOBAR
wird durch die Eingabe whatfo
die Abkürzung nicht ausgelöst. Dafür gibt es einige offensichtliche vernünftige Gründe.
Ich möchte jedoch eine Abkürzung, die als Suffix verwendet werden kann, ohne dass ich das iab auslösen und dann zurückgehen und das Leerzeichen entfernen muss. Ist das möglich? ZB , iab fo <backspace>FOOBAR
.
abbreviations
Goldlöckchen
quelle
quelle
Antworten:
Sie könnten in Ihr vimrc schreiben:
iab fo <BS>FOOBAR
<BS>
ist die Notation, die für die Rücktaste verwendet werden soll.Weitere Informationen zu speziellen Schlüsselnamen finden Sie unter:
quelle
[7:0]
und man müsste mit der Anzahl derb
s usw. herumspielen, um das anzupassen, denke ich.b
unde
durchB
undE
zu ersetzen . Aber es kann andere Fälle geben, in denen es fehlschlagen würde, ich weiß es nicht. In jedem Fall sollte die erste Version hoffentlich die meiste Zeit funktionieren.iab fo <BS>foobar
genug. Entschuldigen Sie die Unannehmlichkeiten. Sie sollten wahrscheinlich die Antwort von @djjcast als die richtige Antwort ankreuzen. Im Moment kann ich meine Antwort nicht entfernen, aber sobald ich kann, werde ich es tun. Wieder wirklich leid, ich bin nicht an Abkürzungen gewöhnt.<BS>
war genau das Richtige. Ich schwöre, ich habe so etwas versucht, aber ich kenne nicht alle Steuerzeichen, also hätte ich es vielleicht benutzt<backspace>
oder so.:help key-notation
Drücken Sie einfach im Einfügemodus Ctrl]. Dadurch werden Abkürzungen erweitert, ohne ein Leerzeichen einzugeben
quelle
X(FOOBAR)
nicht istX( FOOBAR
. Wenn Sie Strg-] verwenden, wird nur der Platz am Ende entfernt . Ich muss in der Lage sein, die Abkürzung zu verwenden - die auch vom Leerzeichen zu Beginn des Feuers abhängt -, muss sie aber mit dem vorherigen Wort verketten (das bedeutet ein " Suffix ").${1}FOOBAR
- das ist eine gute Antwort. Wenn Sie dies ändern möchten: / oder eine andere Antwort hinzufügen, werde ich das ankreuzen.Alternativ können Sie hier Abkürzungen definieren und erweitern, die sich überall erweitern lassen:
Fügen Sie einfach die Abkürzungen hinzu, die irgendwo im
s:anywhere_abbreviations
Wörterbuch erweitert werden sollen . Dies:MaybeExpandAbbreviation()
Funktion sucht nach Abkürzungsübereinstimmungen und erweitert diese, wenn die Auslösetaste gedrückt wird. Sie<Space>
wird zugeordnet, um die Erweiterung der Abkürzungen "irgendwo" auszulösen.Mit dem obigen
s:anywhere_abbreviations
Wörterbuch wird die Eingabewhatfo<Space>
auf erweitertwhatFOOBAR
.quelle
Um die zwei einfachsten Antworten zusammenzufassen, die sich daraus ergaben:
Sie können eine Rücktaste direkt in einer Abkürzung verwenden - verschiedene Sonderzeichen sind unter dokumentiert
:help keycodes
. Also zB:Ermöglicht das Tippen
trans cdt
und Abrufentranscendental
.Eine, für die ich mich besonders schäme, seit ich sie seit Jahren benutze : Das übliche snipMate-Plugin ermöglicht es, dass Parameter in den Vordergrund treten
Ermöglicht das Eingeben
cdt
, wodurch der Cursor Taberweitertcendental
und vorgesetzt wird, damit Sie tippen können. Drücken Sietrans
dann Taberneut, um zum Anfang des nächsten Wortes zu gelangen.quelle