Я действительно новичок в Vim/Vimscript и пытаюсь настроить мой .vimperatorrc так, чтобы он выполнялся так же, как и при запуске : откройте поисковый запрос :open google search-term .

После прочтения мне кажется, что мне нужно nnoremap g :open google<Space> . Это почти работает, но окно не появляется, пока я не нажму другую клавишу.

Есть ли что-то еще, что мне нужно сделать? Чтобы быть ясным, я хотел бы, чтобы это в основном делало то же самое, но не требовало дополнительного нажатия клавиш для открытия окна поиска.

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .