F 和 t 命令在 Vim 中做什么?

ft命令在 vim 中做什么以及它们是如何工作的?

63121 次浏览

你的第一站与这些问题应该是 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.
^

您可以将这些命令记作 find 和 till。此外,您还可以在命令前面加上一个数字,以便移动到该字符的第 n 个匹配项。例如,3fb将移动到光标右侧的第三个 b。我的例句只有一个 b,所以光标根本不会移动。

fx在线上跳转到 下一个 x

tx跳转到该行上的 下一个 x之前的字符。

您可以使用 FxTx到达 上一页 x

您可以使用 2fx跳转到行上的第二个 x

因此,当您想要快速转到下一组括号(f()或删除从光标到但不包括前一个 =(dT=)等的所有内容时,fFtT非常有用..。

看看 :h motion.txt。它会让你大吃一惊。

我发现 ftdc结合起来非常有用。例如,ct:将允许您替换从光标到下一个冒号的所有内容,但不会删除冒号。你可以记住它是“变成冒号”。

只是增加到 迈克尔 · 克里斯托菲克的回答,没有描述的 ft是完整的,也提到了 ;

来自 Vim 的小抄:

“重复最近的 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.
^

既然 LondonRob 提到了 ;,我想对于逗号 ,命令的描述是合适的。它经常与这些命令结合使用(当搜索过度时)。

在使用 fFtT进行搜索之后,可以使用 ,向相反的方向重复搜索。

假设我们在这个句子的开头,我们想把 洛特改为 精英

Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
^

我知道我必须替换一个 ,所以我立即执行一个 fo(查找 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.
^
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.
^

完成更换。

与大多数移动命令一样,,也计数: [count],

手册上说:

在相反方向重复最近的 f,t,F 或 T 次数。