
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/hea
selecionar até, hea
mas quando eu excluir o texto, terei removido o início h
também head
. Eu poderia apenas h
apoiar 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 t
depender de dois ou mais caracteres em vez de um único caractere?
Responder1
Experimente isto:
:vnoremap / //b-1<left><left><left><left>
Quando você digita v
para 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-1
ao Vim para procurar esse padrão e colocar o cursor um caractere antes ( -1
) do b
início da correspondência. Ver
:help search-offset
Você não precisa mapear /
. Você poderia mapear t
ou 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 h
as letras em vermelho, mas substituí-las por a,b,c,…
e então você pode clicar b
para 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
d2fh
fará isso no seu exemplo.
Responder4
Não, t
aceita apenas um caractere. Eu faria vththd
.