2012-09-19 25 views
83

有人可以向我解釋什麼ft命令在vim中以及它們如何工作?我似乎無法找到這些信息,但人們總是告訴我他們非常有用。如果可能的話,我會非常感謝你的答案,謝謝!f和t命令在Vim中做什麼?

+0

那些認爲它很有用的人,他們不會說它有什麼用處嗎? – Shahbaz

回答

132

你的第一站問題應該是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

非常感謝,這很完美,我完全忘了:h命令,這是我第一週使用Vim,這是一個巨大的幫助,謝謝! – user1023465

+1

做'fb'時,我被帶到b(rown)。我將如何*直接轉到b(r)擁有?有沒有辦法,沒有hjkl? – dangdis

+0

該命令爲'f',其中'b'爲目標。 'fr'會把你帶到棕色的r。 –

21

fx跳轉到未來x就行了。

tx跳到下一個x就行了。

您可以使用FxTx來達到之前的x

您可以使用2fx跳轉到第二個x即可。當你想快速進入下一個括號(f()或從光標刪除所有內容,但不包括以前=dT=)等

所以,fFtT是有用的......

:h motion.txt。它會打擊你的思想。

+0

感謝提到'2fx'的東西。我總是把它與'f2x' – Yar

35

我找到˚F非常結合dÇ有用。例如,ct:將允許您替換從光標到下一個冒號的所有內容,但不會刪除冒號。你可以記住它是「改變冒號」。

+2

+1混淆!像'ct,'或'ct)'這樣的習慣用來快速替換函數調用的一個或最後一個參數感覺很棒。 – progo

+8

我更喜歡'vt:c',因爲你不會總是發現給定字母的每次出現都是100%正確的。用'v'你可以看到視覺選擇,一個很好的視覺提示。 – Bentley4

+0

我更喜歡助記符,「改爲冒號」 –

72

只要添加到Michael Kristofik's answerft的描述是完整的,不需要提及;

this Vim cheat sheet

; 「重複最新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. 
       ^
+0

;提示是非常有用的,但我不明白它如何與'噸'。我試過了,無論t命令重複多少次,我都陷入了相同的位置。 –

+0

@PeterPerháč幾次按分號。適用於我。 – LondonRob

+0

@PeterPerháč,我想這對t命令來說更加棘手,因爲當向前搜索x時,每次擊中時分號會找到相同的x;因此不會移動。如果你點擊一次,然後分號,它應該工作。 – mickey