Jak zmapować <cmd> - <shift> -f, aby uruchomić wtyczkę Ack w Vimie?

10

Jestem nowy w vimie i próbuję zmapować kombinację klawiszy dla uruchomienia wtyczki Ack, którą można znaleźć tutaj: https://github.com/mileszs/ack.vim

Chcę zmapować, cmd-shift-faby uruchomić polecenie Ack :Ack. Dodałem następujące do~/.vimrc

nmap <D-F> :Ack<space>

To nie działa Co ja robię źle?

Używam vim 7.3 w iTerm 2 na MacOS X.

jordelver
źródło

Odpowiedzi:

4

Problem polega na tym, że w mapowaniach notacji <...> wielkość liter jest (głównie) niewrażliwa, więc musisz jawnie stwierdzić, że chcesz mapować za pomocą klawisza Shift. Spróbuj tego:

nmap <D-S-F> :Ack<space>
Heptyt
źródło
To wciąż nie działa. To dziwne, ponieważ nmap <CF>: Ack <space> działa dla <ctrl> <shift> -f. Ale to nie działa z <cmd>
jordelver,
1
Hmm interesujące. nmap <D-F> :Ack<space>działa w MacVimie, ale nie w terminalu. Wygląda na cmdto, że nie jest rozpoznawany w terminalu.
jordelver,
1
I wreszcie, zgodnie z tą stroną: unix.stackexchange.com/questions/29665/... Możesz używać tylko <cmd>mapowania klawiszy w GUI Vim, takich jak MacVim. Postanowiłem po prostu pójść <ctrl>-fna teraz.
jordelver
3

Lub .. możesz pomyśleć o zrobieniu tego w ten sposób:

nmap <D-F> :Ack <space>

Nie musisz wspominać o przesunięciu, a to nadal uruchamia się tylko z wielką literą F (więc chociaż przesunięcie nie jest wymienione w powiązaniu, nadal musisz je nacisnąć).

To przynajmniej działa dla mnie.

Jason F.
źródło
Pracował dla mnie! Mój przypadek użycia:nnoremap <silent> <D-D> <C-w>s
aymericbeaumet