Переопределение клавиш направления vim не учитывается при навигации по окну просмотра - PullRequest
2 голосов
/ 17 декабря 2011

Я использую Colemak, и, таким образом, я переназначил свои клавиши направления следующим образом:

noremap n h
noremap e j
noremap i k
noremap o l

noremap h n
noremap j e
noremap k i
noremap l o

Проблема в том, что эти комбинации клавиш не учитываются при навигации по окну просмотра.Например.когда я нажимаю ^w+n, я хочу сместить фокус на видовой экран влево, но вместо этого открывается новый пустой видовой экран.

Как я могу помочь привязать все навигационные клавиши видового экрана отдельно?

Ответы [ 2 ]

2 голосов
/ 18 декабря 2011

Этот предмет был несколько избит до смерти на форумах Колемака:

  • http://colemak.com/forum/viewtopic.php?id=50 (5 страниц, при активном участии дизайнера colemak, который (раньше) также был заядлым пользователем vim).

Существует ряд ссылок на

  • раскладка
  • скрипты для плагинов

Мне кажется, что собственный сценарий Шая заходит слишком далеко - он делает гораздо больше, чем просто интегрирует Colemak в vim (переназначение Cw на Close Tab, например, показывая некоторый уклон по отношению к редакторам, ориентированным на табуляции, люди жаловались на движения in / exclusive ( diw, daB и т. д.) больше не работает и т. д.).

Полагаю, лучший совет, который был дан ранее, - это придерживаться значений по умолчанию и делать:

Клавиатурные привязки для Vim

Vim - чрезвычайно эффективный текстовый редактор, который я использую для написания электронных писем и редактирование любого текстового файла. Все команды Vim контролируются с клавиатура: «d» для удаления, «w» для перемещения курсора на одно слово вперед, «dw» для удалить текст, сдвинутый на «w», «2dw», чтобы удалить два слова и т. д. Навигация влево / вниз / вверх / вправо расположена на клавишах QWERTY H / J / K / L, так что руки машинистки никогда не должны тянуться за клавишами со стрелками или мышью.

К сожалению, эти клавиши навигации не так интуитивны под Colemak и поэтому мне нужно было найти более подходящие сопоставления. После экспериментов с много альтернатив, вот что я наконец решил и очень доволен:

noremap n j|noremap <C-w>n <C-w>j|noremap <C-w><C-n> <C-w>j
noremap e k|noremap <C-w>e <C-w>k|noremap <C-w><C-e> <C-w>k
noremap s h
noremap t l

noremap f e
noremap k n
noremap K N 
noremap U <C-r>
1 голос
/ 17 декабря 2011

Я думаю, вам придется явно отобразить команды навигации по окну <C-W>, выполнив что-то вроде:

noremap <C-W>n <C-W>h
noremap <C-W>e <C-W>j
noremap <C-W>i <C-W>k
noremap <C-W>o <C-W>l

noremap <C-W>h <C-W>n
noremap <C-W>j <C-W>e
noremap <C-W>k <C-W>i
noremap <C-W>l <C-W>o
...