verhindert nachfolgende Leerzeichen bei der Verwendung von vim-Abkürzungen

8

Ich bin ein neuer Benutzer von vim (gvim in Windows) und habe Abkürzungen gefunden, die eine schöne Zeit sparen - aber sie wären sogar noch besser, wenn ich den nachgestellten Whitespace manchmal stoppen könnte.

Ich habe einige Verzeichnisse, die ich oft verwende, und so habe ich einige Abkürzungen / Pfad-Paare zu meinem _vimrc hinzugefügt:

%Vor%

usw. ...

Nun, wenn ich diR1 <space> eintippe, bekomme ich C:/dirA/dira/dir1/[]| , wobei das Leerzeichen durch [] repräsentiert wird und der Cursor das | Zeichen ist. Ich möchte den [] == Whitespace loswerden.

Dies ist eine kleine Beschwerde: Wie auch immer, Sie scheinen in der Lage zu sein, alles andere in Vim so anzupassen, dass ich dachte, ich würde fragen - ist es möglich, den nachgestellten Whitespace zu vermeiden, wenn man Abkürzungen in vim verwendet?

Ein alternatives Tool, das in Vim verwendet wird, ist eine gute Antwort - mein Ziel ist es, die häufig verwendeten Verzeichnisstrukturen nicht neu eingeben zu müssen, aber den Cursor griffbereit zu haben, da ich fast immer etwas zum Ende hinzufüge, zB myFile.txt .

Der nachfolgende Leerraum (zweifellos aufgrund der Tatsache, dass die space die Abkürzung ausgelöst hat), die ich rückgängig mache, bevor myFile.txt am Ende hinzugefügt wird, ist weniger ärgerlich als das ganze Ding wieder und wieder zu tippen, aber es wäre ideal, wenn ich es vermeiden könnte ...

    
ricardo 08.08.2012, 06:36
quelle

3 Antworten

13

pb2q Antwort ist genau das, was Sie in Ihrem aktuellen Szenario wollen, beantwortet aber die Frage im Titel nicht vollständig. Dieses genaue Problem wird in der vim Hilfedatei behandelt. Siehe :helpgrep Eatchar . Das Beispiel, das es gibt, ist das:

%Vor%

Sie würden die Eatchar -Funktion in Ihre ~/.vimrc -Datei einfügen und dann wie in Ihren Abkürzungen verwenden:

%Vor%

Dies würde jedes nachfolgende Leerzeichen oder einen Schrägstrich "essen". Beachten Sie, dass ich iabbr anstelle von nur abbr verwendet habe, da es eigentlich selten ist, dass Abkürzungen im Befehlszeilenmodus erweitert werden sollen. Sie müssen vorsichtig mit Abkürzungen im Befehlszeilenmodus umgehen , da sie sich an unerwarteten Stellen wie Suchen und Eingaben () erweitern.

Weitere Informationen finden Sie unter

%Vor%     
Peter Rincker 08.08.2012, 13:21
quelle
6

Dies ist möglich, ohne weitere Anpassung, nur abbrev .

Die Abkürzung wird wie bekannt durch das Leerzeichen ausgelöst. Der Raum ist ein Nicht-Schlüsselwort und bleibt bestehen, nachdem die Abkürzung erweitert wurde.

Aber es gibt andere Möglichkeiten, die Erweiterung auszulösen, wie andere nicht-Schlüsselwort-Zeichen, einschließlich / . Also, wenn Sie stattdessen Ihre Abkürzungen wie folgt definieren:

%Vor%

Das heißt, ohne das Trennzeichen für nachstehende Pfade, dann können Sie diR1/ eingeben, die Abkürzung für Sie wegen des Schrägstrichs / erweitern und weiterschreiben und an Ihren Pfad mit anhängen ein Dateiname.

Alternativ können Sie die Abkürzungserweiterung mit Ctrl-] erzwingen. Geben Sie die Abkürzung ein: diR1 , ohne folgendes Leerzeichen oder ein anderes Nicht-Schlüsselwort, und geben Sie dann Ctrl-] ein. Die Abkürzung wird erweitert und Sie bleiben im Einfügemodus und können Ihren Dateinamen an den erweiterten Pfad anfügen.

Auschecken :help abbreviations , da könnte etwas anderes nützlich sein, einschließlich komplizierterer Konstruktionen für immer , die z.B. das Leerzeichen, das die Abkürzung ausgelöst hat.

    
pb2q 08.08.2012 06:43
quelle
0

Anstelle von Abkürzungen können Sie auch Zuordnungen verwenden. Sie werden erweitert, sobald Sie das letzte Zeichen des Mappings eingegeben haben, so dass kein Leerzeichen mehr folgt:

%Vor%

Der Nachteil dieses Ansatzes besteht darin, dass die Buchstaben, die Sie eingeben, während ein Mapping erweitert werden konnte, erst angezeigt werden, wenn das Mapping abgeschlossen ist. Dies erfordert etwas Verwendung von.

    
René Nyffenegger 02.05.2014 05:01
quelle

Tags und Links