2013-10-22 20 views
5

Nachdem ich Damian Conways ausgezeichnete Instantly Better Vim, entschied ich mich Vims Doppelpunkt und Semikolon zu wechseln:Remapping Semikolon Doppelpunkt in vim Pausen ‚: ls‘

nnoremap ; : 
nnoremap : ; 

Das alles funktioniert wunderbar, bis auf eine kleine Sache. Wenn ich ;ls eintippe, bekomme ich die Pufferauflistung (wie erwartet), mit der Standardnachricht zu "Drücken Sie ENTER oder geben Sie Befehl ein, um fortzufahren." Häufig möchte ich etwas wie :bd 2 4 9 eingeben, um einige Puffer zu löschen.

Mit der neuen Zuordnung funktioniert das Eingeben eines Semikolons jedoch nicht (es wird in eine neue leere Befehlszeile verzweigt), aber auch das Eingeben eines Doppelpunkts (es funktioniert wie jeder andere Tastendruck, soweit ich das beurteilen kann) ! Gibt es eine Möglichkeit, dies zu umgehen? Ich tendiere dazu, die Standard-Semikolon-Funktionalität ziemlich häufig zu verwenden, daher möchte ich diese Zuordnung wenn möglich beibehalten. Das Problem behebt sich selbst, wenn ich die nnoremap : ; entferne, so dass der Standard-Doppelpunkt immer noch funktioniert.

+3

Es gibt keine Lösung dafür, aber lassen Sie mich Ihnen diese Zuordnung geben: 'nnoremap lb: ls : b'. – romainl

Antwort

2

Ich würde sagen, das ist eine unglückliche Konsequenz der Implementierung der Hit-Enter-Eingabeaufforderung. Die Logik, ob die Ausgabe gelöscht werden soll, scheint das Mapping nicht zu berücksichtigen. Sie sollten dies auf der vim_dev mailing list erhöhen; vielleicht implementiert jemand einen Patch, da diese Swapsprache sehr verbreitet ist.