Что делают команды f и t в Vim?

Может кто-нибудь объяснить мне, что делают команды f и t в vim и как они работают? Я не могу найти эту информацию, но люди продолжают говорить мне, что они очень полезны. Поистине оцените ответ с примером, если это возможно, спасибо!

Ответ 1

Ваша первая остановка с такими вопросами должна быть внутренней помощью vim, :h f и :h t. Однако в этом случае эти записи являются немного загадочными без примера. Предположим, что у нас была эта строка (^= позиция курсора):

The quick brown fox jumps over the lazy dog.
^

Эти команды находят символы в строке. Итак, fb разместил бы курсор здесь:

The quick brown fox jumps over the lazy dog.
          ^

t похож на f, но накладывает курсор на предыдущий символ. Итак, tb предоставит вам:

The quick brown fox jumps over the lazy dog.
         ^

Вы можете запомнить эти команды как f ind и t ill. Кроме того, вы можете добавить команды с номером, чтобы перейти к n-му вхождению этого символа. Например, 3fb переместится в третий b справа от курсора. Мое предложение для примера имеет только один бит, поэтому курсор не будет перемещаться вообще.

Ответ 2

Просто чтобы добавить в ответ Майкла Кристофика, описание f или t не будет завершено без упоминания ;.

Из этот обманщик Vim:

; "Повторите последние значения f, t, F или T [count]."

Итак, чтобы продолжить тему @MichaelKristofik:

The quick brown fox jumps over the lazy dog.
^

введите fo, чтобы перейти к первому 'o':

The quick brown fox jumps over the lazy dog.
            ^

а затем ;, чтобы перейти к следующему:

The quick brown fox jumps over the lazy dog.
                 ^

Ответ 3

Я нахожу f и t очень полезным в сочетании с d и c. Например, ct: позволит вам заменить все с вашего курсора на следующий двоеточие, но не удалять двоеточие. Вы можете запомнить это как "изменить на двоеточие".

Ответ 4

fx переходит к следующему x в строке.

tx переходит к символу непосредственно перед следующей x в строке.

Вы можете использовать fx и tx для достижения предыдущего x.

Вы можете использовать 2fx для перехода к второй x в строке.

Итак, fF и tT полезны, когда вы хотите быстро перейти к следующему набору круглых скобок (f() или удалить все из курсора в, но исключая предыдущий = () и т.д.

См. :h motion.txt. Это взорвется.