2012-09-19 10 views
83

Czy ktoś może mi wyjaśnić, co robią komendy f i w vim i jak dokładnie działają? Nie mogę znaleźć tych informacji, ale ludzie powtarzają mi, że są bardzo przydatni. Byłbym wdzięczny za odpowiedź na przykład, jeśli to możliwe, dzięki!Co robią komendy f i t w Vimie?

+0

Ci, którzy mówią, że to przydatne, czy nie mówią, co jest przydatne? – Shahbaz

Odpowiedz

132

Twój pierwszy przystanek z takimi pytaniami powinien być wewnętrzną pomocą vima, :h f i :h t. Jednak w tym przypadku te wpisy są nieco zagadkowe bez przykładu. Załóżmy, że mieliśmy tę linię (^ = pozycja kursora):

The quick brown fox jumps over the lazy dog. 
^ 

Polecenia te uważają znaków w wierszu. Więc fb by umieścić kursor tutaj:

The quick brown fox jumps over the lazy dog. 
     ^

t jest jak f ale umieszcza kursor na poprzedniej postaci. Więc tb dałby wam:

The quick brown fox jumps over the lazy dog. 
     ^

Można zapamiętać te polecenia jako f ind i t złego. Możesz także poprzedzić polecenia numerem, aby przejść do n-tego wystąpienia tej postaci. Na przykład 3fb przejdzie do trzeciego b po prawej stronie kursora. Moje przykładowe zdanie ma tylko jeden b, więc kursor w ogóle się nie poruszał.

+1

Wielkie dzięki, to było idealne, zupełnie zapomniałem o poleceniu: h to jest mój pierwszy tydzień przy użyciu Vima, to była ogromna pomoc dzięki! – user1023465

+1

Robiąc "fb", zabieram mnie do b (rown). Jak mogę * bezpośrednio * dostać się do b (r) posiadać? Czy istnieje sposób, bez hjkl? – dangdis

+0

Komendą jest 'f', gdzie' b' jest celem. 'fr' przeniesie Cię do r w kolorze brązowym. –

21

fx przeskakuje do dalejx na linii.

tx przeskakuje do postaci tuż przed następnejx na linii.

Można użyć Fx i Tx osiągnąć poprzednix.

Możesz użyć 2fx, aby przeskoczyć do drugiego x na linii.

Więc fF i tT są użyteczne, gdy chcesz iść szybko do następnego zestawu nawiasach (f() lub usunąć wszystko od kursora do, ale z wyłączeniem, poprzednia = (dT=) i tak dalej ...

Zobacz :h motion.txt. To rozwali twój umysł.

+0

dzięki za wzmiankę o rzeczy '2fx'. Zawsze mylę to z 'f2x' – Yar

35

znaleźć F i t bardzo użyteczne w połączeniu z d i c. Na przykład, ct: pozwoli ci zastąpić wszystko od kursora do następnego dwukropka, ale nie usunie dwukropka. Możesz go zapamiętać jako "zmienić na dwukropek".

+2

+1! Idiomy takie jak 'ct,' lub 'ct)' do szybkiego zastąpienia jednego lub ostatniego argumentu wywołania funkcji są wspaniale w użyciu. – progo

+8

Preferuję 'vt: c', ponieważ nie zawsze zauważasz, że każde wystąpienie danej litery jest w 100% poprawne. Za pomocą 'v' widać wizualną selekcję, ładną wizualną wskazówkę. – Bentley4

+0

Wolę mnemonik, "zmień aż do dwukropka" –

72

Po prostu, aby dodać do Michael Kristofik's answer, opis f lub t jest kompletny bez wymieniania również ;.

Z this Vim cheat sheet:

; "powtórzyć ostatni K, T, C lub T [liczyć] Terminy".

Tak, aby kontynuować @ MichaelKristofik tematem:

The quick brown fox jumps over the lazy dog. 
^ 

typ fo aby przejść do pierwszej 'o':

The quick brown fox jumps over the lazy dog. 
      ^

a następnie ;, aby przejść do następnego:

The quick brown fox jumps over the lazy dog. 
       ^
+0

; wskazówka jest całkiem przydatna, ale nie widzę, jak to działa z "t". próbowałem i utknąłem w tej samej pozycji, bez względu na to, ile razy polecenie t jest powtarzane. –

+0

@ PeterPerháč Naciśnij kilkakrotnie średnik kilka razy. Pracuje dla mnie. – LondonRob

+0

@ PeterPerháč, domyślam się, że jest to trudniejsze z poleceniem t, ponieważ podczas wyszukiwania do przodu dla x, średnik znajdzie ten sam x za każdym razem, gdy uderzysz, nie ruszając się. Jeśli uderzysz l raz, a potem średnik, powinno to zadziałać. – mickey

Powiązane problemy