Может кто-нибудь объяснить мне, что делают команды 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
не будет завершено без упоминания ;.
;
"Повторите последние значения 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
. Это взорвется.