Veja as antigas seqüências de chaves no vim

0

Às vezes, compartilho capturas de tela e clipes de uso do vim com outras pessoas. Seria bom expandir a parte da linha de comando destacada nesta imagem:

Gostariaqueformastambémtornassemassequênciasdechavesanterioresvisíveis,como:

y2wjjf[p 2d-Vocêpodeverassequênciasdeteclasquelevamàatual.Vouelaborarminhalistadedesejosnaparteinferior.

Éalgocomoistoestádisponívelcomoumpluginouscriptvim?Ograndenúmerodescriptsdisponíveisem vim online dificulta a localização por palavra-chave.

Esclarecimento: adicionei a seção a seguir para mostrar quais funcionalidades eu queria, caso houvesse muitos plug-ins de vim que lidavam com isso . Como parece que provavelmente existem poucos ou nenhum plug-in para fazer o que eu quero, esta seção é irrelevante para a questão - a questão não é como implementar esses recursos , é ou não, e onde eles já foram implementados .

Algumas características que eu esperaria (mas parecem improváveis):

  1. Delimite sequências de teclas com um caractere sem teclado em vez de espaço e uma diferente para o comando atual, portanto, y2w jj f[ p   2d pode se tornar y2w¦jj¦f[¦p » 2d
  2. Substitua as chaves que têm uma alternativa de letra pela alternativa, como a tecla de seta para a direita - ^[[C com o equivalente l . Editar: Para esclarecer, a tecla de seta para a direita é uma chave válida no vim, mas não possui nenhum caractere para representá-la (uma string como <right arrow> teria que ser usada), nos casos em que a chave l executa a mesma função ( na maioria das vezes) deve substituir a string mais longa.
  3. Ter pressionamentos de teclas anteriores até o início da linha (em vez de apenas um ou dois), e apenas solicitar que o comando do vim sobrescreva quando necessário.
  4. Substitua alguns toques de tecla por uma alternativa mais elegante, por exemplo hhhhh com 5h ou mais impressionantemente d2f) com d% (na situação apropriada).
por Vasiliy Sharapov 29.11.2011 / 21:55

1 resposta

1

Alguns recursos que eu esperaria (mas parecem improváveis):

1. Delimit key sequences with a non-keyboard character instead of space, and a different one for the current command, so y2w jj f[ p   2d might become y2w¦jj¦f[¦p » 2d

Primeiro, você tem que descobrir o que você quer para si mesmo. Um método ingênuo (tenho certeza de que outros virão com métodos mais elegantes) para gravar teclas pressionadas no modo normal seria gravar uma macro (pressione qa para iniciar, qq para finalizar a gravação e ver por : reg ). Mas não vai "dividir as chaves" para você, colocando espaços entre porque, bem ... porque você não pressionou espaço enquanto gravava.

Se você quiser colocar o conteúdo do registrador a por exemplo em seu texto, você pode com "ap e depois dividi-los ao seu gosto. Depois disso você pode tentar juntá-los com algo como join (a, "|") ou qualquer que seja o caracter vertical. Não tenho certeza aqui.

2. Replace keys that have a letter alternative with the alternative, such as the right arrow key - ^[[C with the equivalent l.

Isso requer alguma lógica mais alta, já que muitas vezes há várias maneiras de realizar a mesma coisa. Qual é a "alternativa"?

3. Have previous keystrokes run all the way to the beginning of the line (instead of just one or two), and just have vim's command prompt overwrite it when necessary.

Agora que eu penso sobre isso, você já tentou este talvez com um keylogger ? Parece que seria melhor do que a minha primeira sugestão aqui, especialmente se você pretende gravar screencasts.

4. Replace some keystrokes with a more elegant alternative, for example hhhhh with 5h or more impressively d2f) with d% (in the appropriate situation).

Difícil. 5h é apenas a maneira de Vim te poupar o trabalho de pressionar hhhhh.

EDIT: Apenas para adicionar, se você está fazendo tudo isso para fins de gravação de um screencast ou um vídeo educativo DemoCreator pode gravar pressionamentos de tecla e apresentá-los na tela, enquanto você os pressiona.

    
por 29.11.2011 / 22:15

Tags