Vimari: Faça com que as chaves não vinculadas a nada no modo normal sejam utilizáveis

Criado em 22 ago. 2020  ·  3Comentários  ·  Fonte: televator-apps/vimari

Se eu não vinculei uma chave a nada, ela deve estar disponível para uso como se você estivesse no modo de inserção.

Por exemplo, as teclas de seta no YouTube devem funcionar, pois não vinculei as teclas de seta a nada nas minhas ligações:

"bindings": {
      "hintToggle": "f",
      "newTabHintToggle": "shift+f",
      "scrollUp": "k",
      "scrollDown": "j",
      "scrollLeft": "h",
      "scrollRight": "l",
      "goToPageTop": "g g",
      "goToPageBottom": "shift+g",
      "goToFirstInput": ":",
      "goBack": "shift+j",
      "goForward": "shift+k",
      "reload": "r",
      "tabBack": "a",
      "tabForward": "w",
      "closeTab": "e",
  }

O mesmo para todas as outras chaves. Como v ou o e assim por diante. Isso foi permitido pelo sVim também e é super útil.

feature request

Comentários muito úteis

Sim, também notei isso e acho que é uma regressão de fluxo de trabalho muito grande. Devemos corrigir isso ou reverter o patch do modo normal antes de enviar para a App Store.

Todos 3 comentários

Sim, também notei isso e acho que é uma regressão de fluxo de trabalho muito grande. Devemos corrigir isso ou reverter o patch do modo normal antes de enviar para a App Store.

Eu implementei esse comportamento no branch 188-normal-mode-non-bound-keys . Como só podemos isolar chaves por chave, tive que isolar todas as chaves vinculadas de acordo com as configurações. Isso significa que, embora por padrão g não faça nada no Vimari, ele é isolado porque faz parte de g + i , shift + g e g + g . Veja o código incluído abaixo para referência.

Na minha opinião, devemos adicionar isso como uma preferência (algo como transparentBindings ) que o padrão é true, pois é uma regressão de fluxo de trabalho, como dito antes.

// Returns all keys bound in the settings.
function boundKeys() {
    var bindings = Object.values(settings.bindings)
        // Split multi-key bindings.
        .flatMap(s => s.split(/\+| /i))
    bindings.push(settings.modifier)
    // Use a set to remove duplicates.
    return new Set(bindings)
}

Nota aleatória para futuros leitores: se você criou seu userSettings.json antes de #194, as chaves json ausentes não parecem herdar das configurações padrão. Você tem que adicioná-lo especificamente ao seu userSettings.json, parece.

Esta página foi útil?
0 / 5 - 0 avaliações