Wie ordne ich <cmd> - <shift> -f zu, um das Ack-Plugin in Vim auszuführen?

9

Ich bin neu in vim und versuche, eine Schlüsselkombination für die Ausführung des hier gefundenen Ack-Plugins zuzuordnen: https://github.com/mileszs/ack.vim

Ich möchte zuordnen cmd-shift-f, um den Befehl Ack auszuführen :Ack. Ich habe folgendes hinzugefügt~/.vimrc

nmap <D-F> :Ack<space>

Es funktioniert nicht. Was mache ich falsch?

Ich verwende vim 7.3 in iTerm 2 unter MacOS X.

jordelver
quelle

Antworten:

4

Das Problem ist, dass bei <...> Notationszuordnungen die Groß- und Kleinschreibung (meistens) nicht berücksichtigt wird. Sie müssen daher explizit angeben, dass Sie mit der Umschalttaste zuordnen möchten. Versuche dies:

nmap <D-S-F> :Ack<space>
Heptit
quelle
Das funktioniert immer noch nicht. Es ist komisch, weil nmap <CF>: Ack <Leerzeichen> für <ctrl> <shift> -f funktioniert. Aber es funktioniert nicht mit <cmd>
Jordanelver
1
Hmm, interessant. nmap <D-F> :Ack<space>funktioniert in MacVim, aber nicht im Terminal. Sieht so aus, cmdals würde es in einem Terminal nicht erkannt.
Jordanelver
1
Und schließlich laut dieser Seite: unix.stackexchange.com/questions/29665/… Sie können <cmd>Schlüsselzuordnungen nur in einer GUI Vim wie MacVim verwenden. Ich habe mich entschlossen, erst einmal mitzumachen <ctrl>-f.
Jordanelver
3

Oder ... Sie könnten darüber nachdenken, es so zu machen:

nmap <D-F> :Ack <space>

Sie müssen die Verschiebung nicht erwähnen und dies wird immer noch nur mit einem Großbuchstaben F ausgelöst (obwohl die Verschiebung in der Bindung nicht erwähnt wird, müssen Sie sie dennoch drücken).

Das funktioniert zumindest bei mir.

Jason F.
quelle
Hat für mich gearbeitet! Mein Anwendungsfall:nnoremap <silent> <D-D> <C-w>s
Aymericbeaumet