Проблемы повторного сопоставления VIM Colemak

Итак, я использую альтернативную раскладку клавиатуры на моем Mac (Colemak), и я переназначил vim для раскладки colemak, отредактировав .vimrc файл как таковой (всего две строчки, чтобы вы поняли):

noremap y o  
noremap p r
... (and so on)

Итак, теперь в VIM нажатие L клавиши (в раскладке QWERTY) похоже I на colemak, он открывает режим вставки, как и должно. Однако, когда я нажимаю, y y чтобы выдернуть строку, вместо этого выполняется y а затем o. Нужно ли мне переназначить y y на o сейчас?

:map o yy

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

1 ответ

Решение

Похоже где-то в твоем .vimrc подать свой y -> oсопоставление сделано только для применения в режиме ожидания оператора, поскольку из того, что вы написали свои первые y регистры, как y.

Вы можете обойти это несколькими способами:

  1. Отключить отображение ключа только для режима оператора:
    :ounmap y
    
  2. карта o -> yyчтобы только нормальный режим (так что это не повлияет на редактирование):
    :nnoremap o yy
    
  3. Просто используйте собственное отображение Vim for Y(или его эквивалент Colemak Y), чтобы скопировать всю строку.
Другие вопросы по тегам