Vim: Сопоставить Cmd-Alt-j с tabprevious?

У меня чертовски много времени с этим. Я начал больше использовать вкладки в MacVim и пытаюсь сделать сопоставление Cmd+Alt+j и Cmd+Alt+k для перемещения вперед и назад между вкладками. Аналогично использованию Cmd+Alt+Left или Right в Textmate, но без необходимости покидать домашнюю строку.

Когда я пытаюсь сделать следующее, это просто не работает:

nnoremap <D-M-j> :tabprevious<CR>
nnoremap <D-M-k> :tabnext<CR>

Кроме того, если я попытаюсь ввести фактическое нажатие клавиши в свой gvimrc, вместо этого я получу <D-M-(delta symbol)> или <D-M-(degree symbol)>.

Есть ли какой-то секрет, который я упускаю, или я делаю что-то глупое?


person Dave Sanders    schedule 31.08.2011    source источник
comment
Почему бы вам не использовать gt и gt?   -  person Benoit    schedule 31.08.2011
comment
@Vulgrin: не должно быть <C-M-j> для Ctrl+Alt+j ? Я не на OSX, так что D может быть чем-то особенным?   -  person Xavier T.    schedule 31.08.2011
comment
@ Ксавьер: Ага. У нас есть контроль, опция (мета) и команда на Mac (C, M и D).   -  person sidyll    schedule 31.08.2011
comment
Для такого рода проблем вы можете начать с просмотра результата :verbose map <D-m-j>. Если вы что-то видите, значит, оно правильно определено. Если нет, то это не было принято во внимание. Потенциально вы также можете узнать, что один из ваших плагинов использует то же сопоставление и, таким образом, отключает ваш.   -  person Xavier T.    schedule 31.08.2011
comment
verbose map перечисляет его как сопоставление, которое я настроил.   -  person Dave Sanders    schedule 31.08.2011
comment
@ Бенуа, что ты имеешь в виду? Я новичок в vim, поэтому я не понимаю.   -  person Dave Sanders    schedule 31.08.2011
comment
Бенуа имеет в виду, что самый эффективный способ перейти к следующей и предыдущей вкладкам — ввести gt и gT соответственно.   -  person romainl    schedule 31.08.2011
comment
Я думаю, что MacVim (и vim) на самом деле не поддерживает несколько модификаторов. Если это так, то <C-M-j>, вероятно, интерпретируется как <C-j>. Я помню, как пытался сымитировать ярлык TextMate, когда начинал изучать vim, что-то вроде <C-Shift-Up> безуспешно. Теперь я просто думаю, что пытаться заставить vim быть еще одним редактором довольно глупо.   -  person romainl    schedule 31.08.2011


Ответы (2)


set macmeta заставит вашу <M-D-j> привязку работать.

person Josh Lee    schedule 31.08.2011

Сделай это :

nnoremap <D-M-j> gt Чтобы перейти к следующей вкладке

nnoremap <D-M-k> gT Чтобы перейти на предыдущую вкладку

вы можете расширить это, используя это для переключения буферов, а также заменив в gt и gT на :bn<cr> и :bp<cr> соответственно

person Rigel Glen    schedule 04.09.2011