f和f命令在Vim中做什么?

时间:2012-09-19 13:11:21

标签: vim

有人可以向我解释一下 f t 命令在vim中的作用以及它们是如何工作的吗?我似乎无法找到这些信息,但人们一直告诉我它们非常有用。如果可能的话,真的很感谢一个例子,谢谢!

5 个答案:

答案 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.
          ^

tf类似,但将光标放在前一个字符上。所以tb会给你:

The quick brown fox jumps over the lazy dog.
         ^

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

答案 1 :(得分:104)

只需添加到Michael Kristofik's answer,即使没有提及; ,也不会完成对ft的描述。

来自this Vim cheat sheet

;"重复最新的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之前的角色。

您可以使用FxTx来访问上一页 x

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

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

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

答案 4 :(得分:0)

由于LondonRob提到了;,所以我猜想对逗号,命令的描述是适当的。它与这些命令一起使用(当搜索超调时)。

使用fFtT执行搜索后,可以使用,沿相反方向重复搜索。< / 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。