Comment mapper <cmd> - <shift> -f pour exécuter le plug-in Ack dans Vim?

10

Je suis nouveau sur vim et j'essaie de mapper un combo de clés pour exécuter le plugin Ack trouvé ici: https://github.com/mileszs/ack.vim

Je souhaite mapper cmd-shift-fpour exécuter la commande Ack :Ack. J'ai ajouté ce qui suit à~/.vimrc

nmap <D-F> :Ack<space>

Ça ne marche pas. Qu'est-ce que je fais mal?

J'utilise vim 7.3 dans iTerm 2 sur MacOS X.

jordelver
la source

Réponses:

4

Le problème est que dans les mappages de notation <...>, la casse est (principalement) insensible, vous devez donc déclarer explicitement que vous voulez mapper avec la touche Maj. Essaye ça:

nmap <D-S-F> :Ack<space>
Heptite
la source
Ça ne marche toujours pas. C'est bizarre parce que nmap <CF>: Ack <space> fonctionne pour <ctrl> <shift> -f. Mais cela ne fonctionne pas avec <cmd>
jordelver
1
Hum ... intéressant. nmap <D-F> :Ack<space>fonctionne dans MacVim, mais pas dans le terminal. On dirait qu'il cmdn'est pas reconnu dans un terminal.
jordelver
1
Et enfin, selon cette page: unix.stackexchange.com/questions/29665/… Vous ne pouvez utiliser <cmd>les mappages de touches que dans un GUI Vim tel que MacVim. J'ai décidé de partir avec <ctrl>-fpour l'instant.
jordelver
3

Ou .. vous pourriez penser à le faire de cette façon:

nmap <D-F> :Ack <space>

Vous n'avez pas besoin de mentionner le décalage et cela ne se déclenche toujours qu'avec un F majuscule (donc bien que le décalage ne soit pas mentionné dans la liaison, vous devez toujours appuyer dessus).

Cela fonctionne pour moi au moins.

Jason F
la source
A travaillé pour moi! Mon cas d'utilisation:nnoremap <silent> <D-D> <C-w>s
aymericbeaumet