Vim: Gerenciando alternativas de várias alternativas

0

(Depois de ler isto, por favor, sugira outro texto para a pergunta, porque eu não poderia encontrar um melhor)

Ao escrever e editar no Vim, seja textos para humanos ou textos para humanos e computadores (código), muitas vezes não consigo decidir imediatamente sobre a versão final de algum pedaço de texto, seja uma palavra com muitos sinônimos ( em prosa) ou um nome de função com propósito ainda não claro (em código). Por exemplo, em prosa:

I've managed to convince/argue into/persuade him to use Linux instead of Windows.

Ou no código:

def count/countEven/somethingElse(input)
  ...
  ...

É assim que meu fluxo de trabalho atual é. Eu quero acompanhar todos os possíveis candidatos para a versão final do texto, então eu os coloco após as barras. Mas há problemas com essa abordagem:

  1. Torna o texto difícil de ler. Compare meu fluxo de trabalho:

    This is augmented/amplified by the power/ability to delegate/assign tedious/monotonous and complicated/difficult work to computers.

    Para como as pessoas normais escrevem:

    This is amplified by the ability to delegate monotonous and difficult work to computers.

  2. Minha abordagem atual não destaca de forma alguma esses pedaços inacabados de textos: eles parecem uma parte normal do texto.

  3. Eu tenho problemas para identificar onde o pedaço ainda não decidido de texto termina e o texto 'normal' começa. Especialmente quando há espaços em alguns dos candidatos ao bloco, por exemplo:

    ... convince/argue into/persuade...

    Pode estar sugerindo que eu tenha essas quatro opções:

    convince into

    convince persuade

    argue into

    argue persuade

    enquanto na realidade a escolha é entre

    convince

    argue into

    persuade

Então, você conhece alguma solução em forma de:

  • funcionalidade interna do Vim
  • um plugin
  • algo para colocar no meu .vimrc
  • qualquer outra coisa

para resolver o problema de combinar todas essas partes em uma "caixa" que não distraia a pessoa de ler o texto?

Se não, onde começo a procurar na documentação do Vimscript (nunca programado nela) para implementar a solução do menu suspenso, como mostrado abaixo?

Agradecemos antecipadamente.

P.S .: Uma solução possível. Diga, eu tenho este texto:

I've managed to convince/argue into/persuade him to use Linux instead of Windows.

Com a solução, ficaria assim:

I've managed to persuade[3] him to use Linux instead of Windows.

Principais características:

  1. Ele só mostra o candidato de chunk da minha escolha enquanto esconde os outros
  2. Mostra, opcionalmente, quantos outros candidatos existem
  3. Este ponto no texto é destacado, provavelmente com uma cor de texto diferente.

Para acessar os outros candidatos, eu teria que ter o cursor em persuade [3] , clicar em uma tecla especial e traria um menu suspenso com todos os outros candidatos, como no Autocomplete função:

I've managed to *persuade[3]* him to use Linux instead of Windows.
                convince
                argue into

Então eu poderia escolher (por, digamos, Ctrl-N ou Ctrl-P) a opção que se encaixa mais. A capacidade de excluir um candidato também seria legal.

Essa é apenas uma das possíveis soluções.

    
por user345286 18.01.2015 / 17:34

1 resposta

1

Primeiro, não se esqueça de que o Vim é um editor de texto , enquanto seus casos de uso vão muito longe na direção da edição personalizada. Então, acho que não haverá muito em termos de uma solução pronta.

Sugestão de plug-in

O que eu tenho é o meu plug-in TextFormComplete , que permite escrever as alternativas em esta forma:

I've managed to [convince|argue into|persuade] him to use Linux instead of Windows.

Em seguida, um q| (ou <C-x>| no modo de inserção) nas opções consulta você por uma opção e substitui o original por ele. Isso ajudaria você na edição final, mas você não pode revisar isso com o desfazer . Então, isso permitiria que você escolhesse uma alternativa ao digitar as frases, mas teria que decidir logo em seguida.

Ponteiros de implementação

Uma implementação do seu processo descrito parece possível, mas eu não recomendaria isso para um iniciante absoluto no Vimscript. Com o recurso ocultar (cp. :help conceal ), você pode, de fato, ocultar / recolher as opções da visualização. O "escolhido" teria de ser marcado de alguma forma, e. %código%. Você pode escrever mapeamentos para alterar facilmente o marcador *convince para outra opção. O problema é que o ocultamento é baseado no realce de sintaxe e provavelmente interferiria com o realce de filetype , por exemplo, quando você tenta usar opções dentro de um comentário (Java etc.). Você só poderia evitar isso limpando todos os outros elementos de sintaxe.

    
por 18.01.2015 / 18:09