Warum funktioniert die Schlüsselzuordnung nnoremap <SCk>: w <CR> nicht?

8

Ich versuche es so zu machen, dass ich mit einem Tastendruck einen Puffer auf die Festplatte schreiben kann .

(Randnotiz: Idealerweise möchte ich, dass dies in allen Modi funktioniert, aber im Moment versuche ich zunächst nur, es im normalen Modus zum Laufen zu bringen. )

Im Vim-Wiki heißt es ...

Vim Träger darstellen Steuerzeichen mit symbolischer Notation wie <F1>, <C-W>, <C-S-F1>usw.

Und auch...

Ein Schlüssel mit dem CtrlSchlüsselmodifikator wird in der <C-key>Notation dargestellt. Zum Beispiel Ctrl-Rwird mit dargestellt <C-R>. Eine Taste mit dem Modifikator Umschalttaste wird in <S-key>Notation dargestellt. Zum Beispiel Shift-F2wird mit dargestellt <S-F2>. Ein Schlüssel mit dem AltSchlüsselmodifikator wird mit <A-key>oder <M-key>Notation dargestellt. Sie können einen oder mehrere Schlüsselmodifikatoren kombinieren. Zum Beispiel können Sie zur Darstellung Ctrl+Shift+F3verwenden <C-S-F3>.

Das scheint zu sagen, dass .vimrces funktionieren sollte , wenn ich das in meine stecke ...

 nnoremap <S-C-k> :w<CR>

Aber es hat keine Wirkung. Wenn ich neu lade .vimrcund shift+ control+ drücke, wird im unteren Bereich Kkeine [File] writtenMeldung angezeigt.

Ich habe es auch versucht, aber dann hatte option+ Kauch keine Wirkung ...

 nnoremap <M-k> :w<CR>

Keine Fehlermeldungen.

Ich bin auf OS X.


AKTUALISIEREN

Ok, ich habe es gerade versucht ...

inoremap <M-s> Hey whats up

Wenn ich dann in den Einfügemodus gehe und option+ drücke S, gibt Vim aus ...

ß

Fängt OS X meine Tastenanschläge ab, bevor Vim sie überhaupt empfängt? Funktioniert das deshalb nicht?

Wenn ja, gibt es eine Möglichkeit, dies zu beenden, außer einen anderen Computer zu kaufen?

Ethan
quelle
5
Beachten Sie, dass die Zuordnung von Strg + Umschalt + getrennt von Strg + Taste nicht funktioniert. Siehe: Kann ich einen Strg + Großbuchstaben getrennt von Strg + Kleinbuchstaben zuordnen? (Tasten wie F1 sind Sonderfälle). Davon abgesehen sieht das Mapping gut aus. Welche Vim verwenden? MacVim?
Martin Tournoij
OK, danke für die Information. Ich werde versuchen, <M>statt zu verwenden <S-C>. Ich benutze kein MacVim. Ich verwende reguläres Vim 7.4.1129, das über MacPorts installiert wird.
Ethan
1
Auch gefragt auf
Stapelüberlauf
4
OS X interpretiert Option-S als ß. Um es in Vim abzubilden, müssen Sie dies tun :inoremap ß Hey whats up.
Amadan
1
<S-C-k>ist drei Tastenanschläge. Ich sag bloß'.
Antony

Antworten:

1

Ihre Tastaturreaktion kann anders sein als erwartet. Zum Beispiel kann es einige Sonderzeichen Ihrer Sprache liefern.

So überprüfen Sie, was Ihr System tut, indem Sie eine beliebige Kombination drücken:

ctrl+vim Einfügemodus und dann option+koderalt+k

Verwenden Sie stattdessen das Ausgabesymbol in Ihrer vimrc-Zuordnung <M-k>

WARNUNG: Diese Methode ist grob - Symbole hängen vom System, dem Terminal usw. ab. Sie müssen also Ihre .vimrc-Bedingungen wie folgt eingeben:

if has("gui_running")
    if has("x11")
        <map_command_here>
    if has("gui_gtk2")
        <map_command_here>

oder um Systeme (OS X) wie hier zu erkennen

Mesco
quelle
0

Ändern Sie es in <C-S-k>. Es funktioniert gut für mich. Sie können auch einen anderen Schlüssel angeben, <F10>z:wq!

:map <F10> :wq!<CR>
SibiCoder
quelle
SCk funktioniert auch für mich im Nnoremap-Modus.
SibiCoder
Welches Betriebssystem und Terminal?
Tom Hale
Linux und vim 7.2
SibiCoder