11

I'm new to vim and I'm trying to map a key combo for running the Ack plugin found here: https://github.com/mileszs/ack.vim

I want to map cmd-shift-f to run the Ack command :Ack. I've added the following to ~/.vimrc

nmap <D-F> :Ack<space>

It doesn't work. What am I doing wrong?

I'm using vim 7.3 within iTerm 2 on MacOS X.

2 Answers 2

5

The problem is that within <...> notation mappings, case is (mostly) insensitive, so you have to explicitly state you want to map with the shift key. Try this:

nmap <D-S-F> :Ack<space>
3
  • That still doesn't work. It's weird because nmap <C-F> :Ack<space> works for <ctrl><shift>-f. But it doesn't work with <cmd>
    – jordelver
    Feb 7, 2012 at 22:44
  • 1
    Hmm, interesting. nmap <D-F> :Ack<space> does work in MacVim, but not in the terminal. Looks like cmd is not recognised in a terminal.
    – jordelver
    Feb 7, 2012 at 22:57
  • 2
    And finally, according to this page: unix.stackexchange.com/questions/29665/… You can only use <cmd> key mappings in a GUI Vim such as MacVim. I've decided to just go with <ctrl>-f for now.
    – jordelver
    Feb 7, 2012 at 23:17
3

Or.. you could think about doing it this way:

nmap <D-F> :Ack <space>

You don't need to mention the shift & this still only triggers with a capital F (so although shift isn't mentioned in the binding, you still have to press it).

This works for me at least.

1
  • Worked for me! My use case: nnoremap <silent> <D-D> <C-w>s Feb 23, 2016 at 11:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .