Kann ich SPACE als Mapleader in VIM verwenden?

82

Von http://items.sjbach.com/319/configuring-vim-right habe ich Spaceerfahren, dass Sie in der Lage sein sollten, als Mapleader in vim zu verwenden. Ich habe es versucht, aber es scheint nicht zu funktionieren. Wer hat es geschafft?

Versucht:

let mapleader = <space>
Marlun
quelle
7
Genial! Lesen Sie einfach denselben Blog-Beitrag und finden Sie ihn, nachdem Sie <SPACE> ausprobiert haben. Ich habe festgestellt, dass in MacVim die Zuordnung von "Ein Zeichen vorwärts bewegen" nicht aus der Leertaste entfernt wurde. Für andere, die dies bei Google finden, fügen Sie hinzu "nnoremap <SPACE> <Nop>" vor dem "let mapleader ..." funktionierte das für mich.
michiakig

Antworten:

97

Versuchen Sie stattdessen Folgendes:

let mapleader=" "

Und denken Sie daran, vorher die folgende Zeile zu schreiben, um sicherzustellen, dass die Leertaste vorher keine Zuordnung hat:

nnoremap <SPACE> <Nop>
Zsolt Botykai
quelle
19
Wie Spacemanaki Kommentare in der obigen Frage nnoremap <SPACE> <Nop>benötigt wurden, um dies zum Laufen zu bringen.
Sasha
1
@ Sasha: wirklich? Könnten Sie erklären, warum und wenn dies wirklich der Fall ist, sollten Sie die Frage möglicherweise bearbeiten.
Greg0ire
4
Ohne die Zuordnung von sasha verhält sich das Drücken von <Space> nicht wie andere Tasten als Mapleader. <Space> im normalen Modus ist <right> zugeordnet. Drücken Sie einfach einige Male hintereinander die <Leertaste> und Sie werden unerwünschtes Verhalten sehen, das durch behoben werden kann nnoremap <Space> <nop>.
Freeo
3
Beachten Sie, dass der Wert von mapleaderTakes nur die Zuordnungen beeinflusst, die nach dem mapleaderFestlegen erfolgen. Siehe :help leader.
evnu
Ich musste die RC-Datei speichern und schließen. Ich habe verwendet, :source %aber die Speicherplatz-Neuzuordnung hat nicht funktioniert.
Jonathan Morales Vélez
67

Mapleader ist eine Vim-String-Variable. Um das Feld als Anführer zu nutzen, müssen Sie dem Sonderzeichen entkommen.

let mapleader = "\<Space>"

Für weitere Informationen siehe,

http://vimdoc.sourceforge.net/htmldoc/eval.html#expr-quote

BEARBEITEN:

Dies funktioniert bei mir in meiner Version von Vim nicht mehr. Auch mit dem Vorschlag in den Kommentaren, die Zuordnung der Leertaste im normalen Modus durch Ausführen aufzuheben nnoremap <SPACE> <Nop>.

Am Ende habe ich die in der Antwort unten angegebene Lösung gewählt.

map <Space> <Leader>
jayWHY
quelle
1
Stellen Sie außerdem sicher, dass Sie doppelte Anführungszeichen verwenden "\<Space>"und nicht '\<Space>'.
Crlane
1
Ich bevorzuge diese Antwort.
Sang Đặng
let mapleader = "\<Space>"arbeitete für mich in nvim, aber nicht in vim. map <Space> <Leader>funktioniert auch nicht in vim für mich.
Günter Zöchbauer
noremap <Space> <Nop> map <Space> <Leader>arbeitete in vim
Günter Zöchbauer
Ich musste den Raum um mich herum entfernen, damit ich =an Neovim arbeiten konnte.
Nikhil CSB
18

Die obigen Lösungen sind großartig, jedoch wird in der unteren rechten Befehlsecke nichts angezeigt. Wenn Sie den \Schlüssel ohnehin nicht verwenden können, versuchen Sie es mit map <SPACE> <leader>und \wird in der Befehlsecke angezeigt. Das und Sie müssen nicht zuerst den Speicherplatz aufheben, wie in den obigen Empfehlungen vorgeschlagen.

Thosehippos
quelle
3
Dies bricht den NERD-Kommentator. Und zumindest in Vim 8 und Neovim wird der Raum so angezeigt, als <20>ob er eingeschaltet wäre. showcmdIch denke, mit Vim ist diese Antwort veraltet.
user31389
Ich möchte hier nur hinzufügen, dass dies auch die beste Lösung ist, wenn Sie bereits ein Muskelgedächtnis für den Standardleiter entwickelt haben, aber stattdessen Platz für eine bessere Effizienz nutzen möchten. "\ r" ist immer noch mit meinem Muskelgedächtnis verbunden, um Nerd Tree zu öffnen und cscope zu verwenden. Es ist also schön, dass es auch dann funktioniert, wenn Speicherplatz dem Leader zugeordnet wird (ich habe jedoch nicht das Bedürfnis, Nerd Commenter zu verwenden).
DrEsperanto