2 Stimmen

Einen Befehl mit einem anderen Befehl in vim abbilden

Ich versuche gerade, den Befehl zum Öffnen von bufferexplorer ( \be ) mit der kürzeren Version ( \b ). Mein Versuch ist es:

map <leader>b <ESC><leader>be<CR>

Das funktioniert natürlich nicht. Kann mir jemand helfen?

0voto

ZyX Punkte 50799

Warum haben Sie <CR> dort? Ihr Mapping ruft den Bufexplorer auf und beendet ihn sofort, indem es den Puffer unter dem Cursor auswählt (es ist der aktuelle Puffer, nicht wahr?) (ich kann mich irren, da ich den Bufexplorer erst seit ein paar Stunden benutze). Richtig ist

map <leader>b <C-\><C-n><leader>be

Ich schlage außerdem vor, Folgendes zu ersetzen <Esc> mit <C-\><C-n> die bedingungslos in den Normalmodus übergeht, ohne zu piepen, kann auch zum Wegwerfen von Registern und Zählungen verwendet werden.

Beachten Sie, dass mapleader muss sich in dem Zustand befinden, in dem sie sich befand, als der bufexplorer seine <leader>be Kartierung.

-1voto

lyallcooper Punkte 2596

Der ursprüngliche Befehl selbst ist wahrscheinlich nur eine Zuordnung zu einem Befehl im Befehlszeilenmodus. Ich habe mir die \be in der Hilfe von BufExplorer, und dort heißt es, dass eine alternative Möglichkeit des Aufrufs darin bestünde :BufExplorer . Versuchen Sie also Folgendes:

noremap <silent> <leader>b :BufExplorer<CR>

Oder vielleicht nmap anstelle von map je nach Ihren Bedürfnissen.

-1voto

Ves Punkte 1182

Da das Standard-Leader-Symbol \ können Sie einfach

map <leader>b <ESC>\be<CR>

aber wenn Sie sich für den tatsächlichen Wert des Anführersymbols interessieren, versuchen Sie etwas wie

:execute 'map <leader>b <ESC>' . (exists('mapleader') ? mapleader : '\') . 'be<CR>'

wo die Konstruktion (exists('mapleader') ? mapleader : '\') ersetzt das entsprechende Führungssymbol (siehe :help mapleader ).

Hinweis: Wenn Sie die mapleader Wert nach diesen Zuordnungsbefehl, wird die Zuordnung unbrauchbar

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X