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] отображения, но это было бы неортодоксально и, вероятно, вредно для здоровья. Чтобы предотвратить конфликты с привязками клавиш по умолчанию, соглашение будет поощрять вас использовать ключ-лидер с вашими пользовательскими сопоставлениями, как показано выше.

Другие вопросы по тегам