有人可以向我解释一下 f 和 t 命令在vim中的作用以及它们是如何工作的吗?我似乎无法找到这些信息,但人们一直告诉我它们非常有用。如果可能的话,真的很感谢一个例子,谢谢!
答案 0 :(得分:170)
这样的问题的第一站应该是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
。此外,您可以在命令前加上一个数字,以移动到该字符的第n个匹配项。例如,3fb
将移动到光标右侧的第三个b。我的例句只有一个b,所以光标根本不会移动。
答案 1 :(得分:104)
只需添加到Michael Kristofik's answer,即使没有提及; ,也不会完成对f
或t
的描述。
;
"重复最新的f,t,F或T [计数]次。"
所以,继续@ 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.
^
答案 2 :(得分:43)
我发现 f 和 t 与 d 和 c 结合使用非常有用。例如,ct:
将允许您替换从光标到下一个冒号的所有内容,但不能删除冒号。你可以记住它是“改为冒号”。
答案 3 :(得分:28)
fx
跳转到该行的 next x
。
tx
跳转到该行 next x
之前的角色。
您可以使用Fx
和Tx
来访问上一页 x
。
您可以使用2fx
跳转到该行的第二个x
。
因此,fF
和tT
在您想要快速转到下一组括号(f(
)或删除从光标到但不包括前一个的所有内容时非常有用=
(dT=
)等等......
见:h motion.txt
。它会让你大吃一惊。
答案 4 :(得分:0)
由于LondonRob提到了;
,所以我猜想对逗号,
命令的描述是适当的。它与这些命令一起使用(当搜索超调时)。
使用f
,F
,t
或T
执行搜索后,可以使用,
沿相反方向重复搜索。< / p>
让我们说这句话的开头,我们想将 elot 更改为 elit 。
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
^
我知道我必须替换 o ,所以我立即执行fo
(找到o)。光标停留在该行的早期 o 上!按;
,以相同方向重复搜索。输入type type ...我应该做五遍,但是假设我过冲了,然后输入;
六遍了。我在这里结束:
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
^
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
^
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
^
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
^
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
^
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
^
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
^
现在,一个人只需执行两次,
,即可在另一个方向重复进行此搜索。光标将到达 elot 中的 o 。
Lorem ipsum dolor sit amet, consectetur adipiscing elot, sed do eiusmod tempor.
^
Lorem ipsum dolor sit amet, consectetur adipiscing elot, sed do eiusmod tempor.
^
ri
完成替换。
与大多数移动命令一样,,
也要计数:[count],
。
从手册:
沿相反方向[count]次重复最新的f,t,F或T。