O que os comandos f e t fazem no Vim?


126

Alguém pode me explicar o que os comandos fe tfazem no vim e exatamente como eles funcionam? Não consigo encontrar essas informações, mas as pessoas continuam me dizendo que são muito úteis. Realmente apreciaria uma resposta com um exemplo, se possível, obrigado!

Respostas:


204

Sua primeira parada com perguntas como essas deve ser a ajuda interna do vim, :h fe :h t. No entanto, nesse caso, essas entradas são um pouco enigmáticas sem um exemplo. Suponha que tivéssemos esta linha ( ^= posição do cursor):

The quick brown fox jumps over the lazy dog.
^

Esses comandos encontram caracteres em uma linha. Então fbcolocaria o cursor aqui:

The quick brown fox jumps over the lazy dog.
          ^

té como, fmas coloca o cursor no caractere anterior. Então tb, daria a você:

The quick brown fox jumps over the lazy dog.
         ^

Você pode se lembrar desses comandos como find e tdoente. Além disso, você pode acrescentar os comandos com um número para passar para a enésima ocorrência desse caractere. Por exemplo, 3fbmoveria para o terceiro b à direita do cursor. No entanto, minha sentença de exemplo possui apenas um b, para que o cursor não se mova.


4
Muito obrigado, foi perfeito, eu esqueci completamente o comando: h, esta é minha primeira semana usando o Vim, essa foi uma grande ajuda, obrigado!
Dan

1
Enquanto faço 'fb', sou levado para b (rown). Como eu chegaria diretamente ao b (r) próprio? Existe uma maneira, sem hjkl?
dangdis

15
E se você escrever as letras em maiúsculas, elas saltam para trás. Então, por exemplo Fbou Tb.
ser-Ndee

2
@ancm como be-ndee disse, Fx ou Tx, onde x é o caractere a ser pesquisado.
mickey

1
provavelmente vale a pena ir fácil para iniciantes por não depender :help, pois nem sempre fornece a melhor explicação para a multidão não-esotérica. o que to [count]'thsignifica mesmo?
Tycholiz 6/01

121

Apenas para adicionar à resposta de Michael Kristofik , nenhuma descrição fou té completa sem mencionar também ;.

A partir desta folha de fraude Vim :

; "Repita as últimas vezes f, t, F ou T [contagem]."

Então, para continuar o tema do @ MichaelKristofik:

The quick brown fox jumps over the lazy dog.
^

digite fopara ir para o primeiro 'o':

The quick brown fox jumps over the lazy dog.
            ^

e depois ;para a próxima:

The quick brown fox jumps over the lazy dog.
                 ^

1
a ; tip é bastante útil, embora eu não veja como ele funciona com 't'. Eu tentei e estou preso na mesma posição, não importa quantas vezes o comando t seja repetido.
Peter Perháč 13/08/16

@ PeterPerháč Pressione ponto e vírgula várias vezes. Funciona para mim.
usar o seguinte código

@ PeterPerháč, acho que é mais complicado com o comando t, pois ao procurar x, o ponto-e-vírgula encontrará o mesmo x toda vez que você pressionar; portanto, não se moverá. Se você pressionar l uma vez e, em seguida, ponto e vírgula, deve funcionar.
mickey

@ PeterPerháč Verifique se você não está na (um caractere anterior) a última ocorrência na linha e ela deve encontrar a próxima ocorrência.
Adam Evans

51

Acho fe tmuito útil em combinação com de c. Por exemplo, ct:permitirá que você substitua tudo, do cursor até os próximos dois pontos, mas não exclua os dois pontos. Você pode se lembrar como "mudar para dois pontos".


5
+1! Idiomas como ct,ou ct)substituir rapidamente um ou último argumento de uma chamada de função são maravilhosos de se usar.
N26325681

15
Eu prefiro vt:cporque você não vê sempre que cada ocorrência de uma determinada letra está 100% correta. Com vvocê pode ver a seleção visual, uma boa dica visual.
Bentley4

1
Eu prefiro o mnemônico, "mude até dois pontos"
Patrick Michaelsen

34

fxpula para o próximo x na linha.

txpula para o personagem logo antes do próximo x na linha.

Você pode usar Fxe Txalcançar o anterior x .

Você pode usar 2fxpara pular para o segundo xna linha.

Portanto, fFe tTsão úteis quando você deseja ir rapidamente para o próximo conjunto de parênteses ( f() ou excluir tudo do cursor até, mas excluindo o anterior =( dT=) e assim por diante…

Veja :h motion.txt. Isso vai explodir sua mente.


2
obrigado por mencionar essa 2fxcoisa. Eu sempre confundi-lo comf2x
Yar
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.