Estou usando a versão mais recente do vim 8.2.148 na versão mais recente do arch linux 5.5.6-arch1-1.
Se eu quiser copiar do cursor até uma letra mais adiante na frase, posso fazer isso, por exemplo nesta frase, se meu cursor estivesse no início da frase e eu quisesse puxar até o c de copiar eu faria dê o comando yuc
, que copiaria "Se eu quiser".
Outro exemplo igualmente válido seria puxar do início da string para o início da segunda instância de "capturas de tela" nesta string:
/home/user/linux_config/script_yad/screenshots/change_screenshots_directory.sh
No entanto, se meu cursor estivesse no início desta frase e eu quisesse puxar até e incluindo a segunda instância da frase, como eu faria isso?
Eu acho que esse comando pode parecer estruturalmente algo como, yt2"sentence"
embora esse comando não funcione.
Obviamente, usar a letra s para puxar não será satisfatório.
Desejo conseguir isso sem usar o modo visual.
Isso precisa de um plugin e, em caso afirmativo, qual?
Isso pode ser feito sem um plugin e como?
Você pode usar:
Ou, mais brevemente:
Isso puxará da posição do cursor até a segunda ocorrência da palavra "captura de tela" na mesma linha.
(Observe que
<CR>
aqui significa pressionar a tecla "Return" para concluir a pesquisa.)Se você tiver o realce de pesquisa incremental ativado (
set incsearch
), verá o Vim destacando essa segunda correspondência.Você parece estar confundindo a moção para um personagem com a moção para uma frase. O
t
movimento (para "até", ét
e nãou
) leva apenas um único caractere. Outra maneira de puxar para esse mesmo local seriay6ts
, mas isso exigiria que você contasse oss
's na frase para ver que aquele no início da segunda instância de "screenshot" é o 6ºs
nessa linha. (Existem plug-ins que podem ajudar com isso.)Há ressalvas ao usar
/
para pesquisar (versust
,f
,T
ouF
movimentos), nessa/
pesquisa pode encontrar correspondências em uma linha diferente e, se isso acontecer, sua operação de arrancar agora buscará conteúdo que inclua novas linhas, o que pode ser surpreendente ou inesperado ao colar isso mais tarde.Por fim, usar o modo visual é uma ótima maneira de obter feedback visual e poder ajustar sua seleção para uma operação, quando o movimento a ser usado não for óbvio ou você precisar de mais flexibilidade.
Por exemplo, você pode começar com
vts
e depois pressionar;
para repetir esse movimento até chegar à segunda "captura de tela" (5 vezes, ao que parece.) Mais fácil do que contar é a 6ª sem o realce! Uma vez que você está lá, você pode simplesmente pressionary
para puxá-lo.Ou
v/screen<CR>
então você percebe que é o próximo, pressionen
, então você percebe que a inicials
está selecionada, pressioneh
para mover para a direita uma vez, entãoy
para puxá-la.(Respondendo ao seu comentário: as soluções de modo visual acima são superiores ao uso de um mouse IMO.
vts;;;;;y
são 9 pressionamentos de tecla, mas 5 deles na mesma tecla. Além disso, suas mãos não deixaram o teclado. E você não precisou contar letras antes da seleção, você conta apenas com ajuda visual. Arrastar o mouse é mais lento, em comparação.)Se você quiser procurar um plug-in que possa ajudar com esse tipo de movimento, o vim-easymotion é uma boa opção a ser considerada.