vim repeat encontre o próximo caractere 'x'

122

Costumo navegar no vim f xpara encontrar a próxima ocorrência do caractere 'x', mas ignoro que exista uma palavra (ou mais palavras) contendo 'x' entre a palavra que quero editar e a posição inicial do cursor.

Então eu tenho que fazê-lo f xnovamente, o que é meio irritante, já que existe esse belo botão ., que repete o último comando. Portanto, existe uma maneira de repetir f xcom um único toque no botão.

epsilonhalbe
fonte

Respostas:

239

O comando para repetir um fé ;(ponto e vírgula); ,(vírgula) inverte a direção da pesquisa.

Jeremiah Willcock
fonte
2
Existe um motivo útil que você não pode usar .para isso? Esse era o comando que eu esperava que funcionasse.
Daniel Kaplan
4
@DanielKaplan Faz sentido mapear o novamento, ou seja, a busca por um caractere ( fe ;), para um caractere diferente da repetição de uma edição ( .). Isso permite fazer pesquisas rápidas e alterações nos resultados da pesquisa. Se você deseja substituir alguns +em uma linha por *você, pode fazer algo assim (pular alguns caracteres e substituir outros):f+r*;.;;.;.;;;.
Marcus Krahl
2
Existe uma maneira de remapear esses comandos? Muitas pessoas usam ,para líder.
Rk1
@ RK1 Alterar o líder com: vamos mapleader ="" (se você quiser um espaço)
@DrEval Claro, mas quero manter meu líder como ,e ainda ter pesquisa reversa. Enfim, agora sou um usuário feliz do vim-easymotion.
Rk1
18

O tempo passou desde que eu fiz essa pergunta - hoje em dia eu uso o vim-easymotion , o que torna a necessidade ;quase desnecessária.

Este plug-in permite pular diretamente para uma determinada letra - acionar o plug-in deixa todas as letras em cinza, com exceção de todos os 'x' na tela - e são substituídas por letras vermelhas que você pode pressionar para pular diretamente para ele.

easymotion em uso

epsilonhalbe
fonte