Ativação de teclas do Vimperator, requer pressionamento de tecla adicional

0

Sou muito novo no Vim / Vimscript e estou tentando configurar o meu .vimperatorrc para executar o mesmo que quando executo :open google search-term .

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

Existe algo mais que eu 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.

    
por mellowmaroon 18.02.2017 / 23:20

1 resposta

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 com A) correspondendo a um mapeamento que possui mais caracteres (onde não existe ambigüidade restante) ou B) não correspondendo a nada e indo 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 arquivo .vimperatorrc (e suponha que sua chave de líder seja o padrão, \ (consulte :h mapleader )):

nnoremap <leader>g :open google<space>

Assim que você terminar de digitar \g , :open google aparecerá conforme o esperado. No entanto, digamos que você tenha isso no seu .vimperatorrc :

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

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

No seu cenário, no entanto, você está mapeando o caractere g . O Vimperator tem muitas ações associadas a combinações de teclas que começam com a letra g . Por exemplo, gt & gT são "mova para a próxima guia / anterior". (Como esses são atalhos de tecla padrão, eles não serão exibidos para você enquanto você digita o comando :nmap g .) Talvez seja possível desmapear todos os mapeamentos g[another character] padrão, 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.

    
por 17.03.2017 / 01:49