Какуне: Как отобразить «перейти вперед» и «перейти назад» в режиме перехода (например, сопоставить «gp» с) - PullRequest
0 голосов
/ 04 июня 2018

Я использую клавиатуру dvorak, и я хотел бы уменьшить нагрузку от достижения клавиши управления при использовании <c-i> и <c-o> (для прыжка назад или вперед).Я думаю, что клавиши ',' и 'p' идеальны в сочетании с меню перехода (например, при первом нажатии клавиши 'g').(Для вас, ребята, это означает, что ключевые позиции «w», «e» и «r» на клавиатуре, когда вы нажмете из меню «Перейти», будут возвращаться назад, переходить к последнему редактированию и переходить вперед).Таким образом…

Вот что я хочу:

1) :map global goto , '<c-o>' -docstring 'jump back'                   // Does not work
2) :map global goto p '<c-i>' -docstring 'jump forward'                // Does not work

Однако по необъяснимым причинам ни одна из этих команд не работает.Я попробовал несколько экспериментов и обнаружил несколько более странных вещей:

Пробовал использовать пользовательский режим вместо режима goto (как указано здесь: https://github.com/mawww/kakoune/wiki/Implementing-user-mode).

3) :map global user , '<c-o>' -docstring 'jump back'                  // Works
4) :map global user p '<c-i>' -docstring 'jump forward'               // Does not work

Пробовал различные изменения вкомандная строка в команде map (обратно в режим перехода)

5) :map global goto p 'd' -docstring 'delete the selection'        // Does not work
6) :map global goto p '/d' -docstring 'delete the selection'       // Works! (Why??)
7) :map global goto p '\d' -docstring 'delete the selection'       // Works! (Why?!?)
8) :map global goto p '\<c-o>' -docstring 'jump back'              // Works! (Why?!!?!!?)
9) :map global goto p '\<c-i>' -docstring 'jump forward'           // Does not work (Why!???)

Итак, в итоге:

a) Почему # 3 работает, а # 4 не работает?

b) Почему при добавлении косой черты (любого типа) перед командной строкой (например, в # 6, # 7, # 8) работают различные команды, сопоставленные с режимом перехода?

c)Как я могу заставить мои намерения работать с № 1 и № 2?(Технически # 8 решает мое намерение № 1, но у меня все еще нет ответа на вопрос, как это сделать # 2)

1 Ответ

0 голосов
/ 07 июня 2018

Ответ на вопрос A:

Как уже упоминалось здесь ,

Остерегайтесь омонимов ключей, таких как <tab> против <c-i> и <ret> против <c-j> и <c-m>

Я получил <c-i> для работы, заменив его на <tab>, например:

:map global user p '<tab>' -docstring 'jump forward'

Вопрос B:

Мне не удалось выяснить, почему режим goto отличается от режима пользователя, но добавление косой черты до выполнения команды, похоже, решает все проблемы.Другой метод, который я нашел, заключался в добавлении <esc> в качестве первой части клавиш действий, что возвращает его в обычный режим перед выполнением остальных клавиш.

Ответ на вопрос C:

Объединяя открытия из вопросов A и B, мы получаем следующие команды рабочей карты:

:map global goto , '\<c-o>' -docstring 'jump back'                   // Works!
:map global goto p '\<tab>' -docstring 'jump forward'                // Works!

... или ...

:map global goto , '<esc><c-o>' -docstring 'jump back'                   // Works!
:map global goto p '<esc><tab>' -docstring 'jump forward'                // Works!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...