Keybinding Vimperator, requer Keypress adicional


0

Eu sou muito novo no Vim / Vimscript, e estou tentando configurar o meu .vimperatorrc para executar o mesmo de quando eu corro :open google search-term.

Da leitura, parece que eu preciso nnoremap g :open google<Space>. Quase funciona, mas a janela não aparece até que eu pressione outra tecla.

Há mais alguma coisa que preciso fazer? Para ser claro, eu gostaria basicamente de fazer a mesma coisa, mas não exigir um pressionamento de tecla adicional para abrir a janela de pesquisa.

Respostas:


1

Quando você está tentando usar um mapeamento e há uma hesitação antes que as coisas apareçam na linha de comando, isso pode indicar que o Vimperator tem mais opções além do que você pressionou até agora. Ele está aguardando mais pressionamentos de tecla para ver se a ambigüidade é resolvida por A) correspondendo a um mapeamento que possui mais caracteres (onde não existe ambigüidade restante) ou B) não correspondendo a qualquer outra coisa e, portanto, com o mapeamento mais curto correspondente. Demonstrarei primeiro usando exemplos com uma chave de líder e, em seguida, voltarei à sua pergunta específica.

Digamos que você tenha o seguinte em seu .vimperatorrc arquivo (e assumir que sua chave de líder é o padrão, \ (Vejo :h mapleader )):

nnoremap <leader>g :open google<space>

Assim que terminar de digitar \g, :open google aparecerá como você espera. No entanto, digamos que você tenha isso em seu .vimperatorrc:

nnoremap <leader>g :open google<space>
nnoremap <leader>gw :open google wiki<space>

Agora, depois de digitar \gnada acontece visivelmente (a menos que você olhe bem de perto para a esquerda da URL atual, o que mostra o pressionamento do modo de comando à medida que você os digita). Isto é porque o Vimperator é incerto se você quer aquele \g mapeamento, ou se você pretende também pressionar w para completar o \gw mapeamento. Nesse cenário, você pode digitar o comando :nmap \g (não pressione <enter> ainda), e você verá esses dois mapeamentos.

No seu cenário, no entanto, você está mapeando o personagem g. O Vimperator tem muitas ações ligadas a combinações de teclas que começam com a letra g. Por exemplo, gt & amp; gT são "mover para a guia seguinte / anterior". (Como esses são atalhos de teclas padrão, eles não serão exibidos para você enquanto você digita o comando :nmap g.) Pode ser possível desmapear todo o padrão g[another character] mapeamentos, mas seria pouco ortodoxo e provavelmente insalubre. Para evitar conflitos com atalhos de teclado padrão, convenção incentivaria você a usar a chave de líder com seus mapeamentos personalizados, conforme demonstrado acima.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.