Vimperator Keybinding, требуется дополнительное нажатие
Я действительно новичок в Vim/Vimscript, и я пытаюсь настроить мой.vimperatorrc для выполнения так же, как при запуске :open google search-term
,
Из чтения, похоже, мне нужно nnoremap g :open google<Space>
, Это почти работает, но окно не появляется, пока я не нажму другую клавишу.
Есть ли что-то еще, что мне нужно сделать? Чтобы быть ясным, я хотел бы, чтобы это в основном делало то же самое, но не требовало дополнительного нажатия клавиш для открытия окна поиска.
1 ответ
Когда вы пытаетесь использовать сопоставление, и перед тем, как что-то отобразится в командной строке, возникает нерешительность, это может указывать на то, что у Vimperator больше опций, чем вы нажимали до сих пор. Он ожидает большего количества нажатий клавиш, чтобы увидеть, разрешена ли неоднозначность либо A), сопоставляющим сопоставление с большим количеством символов (где не существует оставшейся неоднозначности), либо B), не сопоставляющим что-либо еще, и тем самым перейдя к более короткому сопоставлению, которое соответствовало. Сначала я продемонстрирую на примерах с ключом лидера, а затем вернусь к вашему конкретному вопросу.
Допустим, у вас есть следующее в вашем .vimperatorrc
файл (и предположим, что ваш лидер-ключ по умолчанию, \
(увидеть :h mapleader
)):
nnoremap <leader>g :open google<space>
Как только вы закончите печатать \g
, :open google
появится, как вы ожидаете. Тем не менее, скажем, у вас есть это в вашем .vimperatorrc
:
nnoremap <leader>g :open google<space>
nnoremap <leader>gw :open google wiki<space>
Теперь после ввода \g
ничего видимого не происходит (если вы не посмотрите очень внимательно слева от текущего URL, который показывает ваши нажатия клавиш в командном режиме по мере их ввода). Это потому, что Vimperator не уверен, хотите ли вы, чтобы \g
отображение, или если вы намереваетесь также нажать w
чтобы завершить \gw
отображение. В этом случае вы можете ввести команду :nmap \g
(не нажимайте <enter>
пока), и вы увидите эти два отображения.
Однако в вашем сценарии вы отображаете персонажа g
, Vimperator имеет много действий, связанных с комбинациями клавиш, которые начинаются с буквы g
, Например, gt
& gT
являются "перейти к следующей / предыдущей вкладке". (Так как это привязки клавиш по умолчанию, они не будут отображаться для вас при вводе команды :nmap g
.) Может быть возможно удалить все карты по умолчанию g[another character]
отображения, но это было бы неортодоксально и, вероятно, вредно для здоровья. Чтобы предотвратить конфликты с привязками клавиш по умолчанию, соглашение будет поощрять вас использовать ключ-лидер с вашими пользовательскими сопоставлениями, как показано выше.