VIM: movimento `t` com dois ou mais caracteres

VIM: movimento `t` com dois ou mais caracteres

Supondo uma linha como:

grep -ir "$@" * | grep -v "/.svn/" | grep -v "/inc/help/" | head -n 100

Se o cursor estiver no primeiro |e eu quiser deletar até head, como poderia fazer isso com t? Eu sei que poderia v/heaselecionar até, heamas quando eu excluir o texto, terei removido o início htambém head. Eu poderia apenas hapoiar um personagem, mas agora isso é uma cadeia de soluções alternativas. Funciona, mas gostaria de saber se existe uma maneira melhor.

Existe alguma maneira de tdepender de dois ou mais caracteres em vez de um único caractere?

Responder1

Experimente isto:

:vnoremap / //b-1<left><left><left><left>

Quando você digita vpara selecionar visualmente uma região e digita /para iniciar a busca pelo final da região, o Vim irá inserir

//b-1

na linha de comando com o cursor sobre o segundo /. Em seguida, você digita os 2 ou mais caracteres com os quais deseja encerrar a região e pressiona Enter. Diz b-1ao Vim para procurar esse padrão e colocar o cursor um caractere antes ( -1) do binício da correspondência. Ver

:help search-offset

Você não precisa mapear /. Você poderia mapear tou algum outro personagem.

Responder2

se você puder fazer isso de forma interativa, você pode tentar complugin easymotion:

d;;fh-> irá esmaecer todo o texto e marcar todas has letras em vermelho, mas substituí-las por a,b,c,…e então você pode clicar bpara excluir a segunda h.

Eu sei que esta descrição é um pouco enigmática - dê uma olhada em umVídeo do youtube

Ps.: esqueci de mencionar ;que é minha chave de líder

Responder3

d2fhfará isso no seu exemplo.

Responder4

Não, taceita apenas um caractere. Eu faria vththd.

informação relacionada