2013-12-18 9 views
7

Powiedzmy, że jesteśmy w tej linii kodu:Jak przesunąć kursor do określonego słowa w bieżącej linii w vim

readonly L|a|zy<ICountryRepository> countryRepo; 

a kursor znajduje się w pozycji litery „A”, jak pokazano na kod między dwoma "|" symbolika.

Teraz chcę przenieść kursor na literę y słowa countryRepo, w jaki sposób mogę to zrobić za pomocą minimalnych naciśnięć klawiszy?

(Obecnie używam kluczową sekwencję fyfyfyfy w trybie normalnym ... głupie)

+2

Czy próbowałeś '$ Fy'? www.vim.org/script.php?script_id=152 to fajna wtyczka, która pokazuje znaczniki w twoim kodzie vima. – Alex

+1

';' jest domyślnym poleceniem powtarzania ruchu w Vimie, zakładając, że nie noremap ';' do ':' (typowa praktyka). –

+3

Istnieje prawdopodobnie ponad 10 sposobów na zrobienie tego, a każda sytuacja jest wyjątkowa. Czasami myślenie o najszybszym sposobie zrobienia czegoś (lub najmniejszej liczbie naciśnięć klawiszy) trwa dłużej niż po prostu zrobienie tego "głupiego" sposobu. Sprowadza się do praktykowania różnych sposobów na zrobienie tego i własnych osobistych preferencji. –

Odpowiedz

11

Jeśli wiesz, że to 4. y można zrobić

4fy 

Jeśli wiem, że to ostatni y w linii, można zrobić

$Fy 

Jeśli nie wiesz w jakiej pozycji jest to, nadal można robić

fy;;; 
+0

można również zrobić 'fy4;' –

+0

To jest, podczas gdy poprawna odpowiedź, problem wymagający lepszego rozwiązania. Musi to być po prostu lepszy sposób w Vimie, ponieważ nie jest praktyczne zliczanie litery w bieżącej linii, zarówno dlatego, że można zliczyć błędne i jak szkoleni czytelnicy nie czytają * liter *, ale całe * słowa *. – gustafbstrom

4

W tym przypadku użyłbym

W 

aby przejść do countryRepo, a następnie

fy 
4

mogę myśleć:

4fy 

Ale zalecana rób to tylko, jeśli jesteś obcym robo t.

/co<cr>fy 

która jest jedną postać krótszy niż rozwiązania, ale bardziej proste ..

Wfy 

Go jedno słowo do przodu, a następnie znaleźć y.

Coś takiego zrobię. Zależy od tego, jakie wyskakujące okienka w moim umyśle.

Powinieneś zajrzeć do wtyczki easymotion, która pomaga w dowolnych ruchach.

EDIT:

easymotion jest tu raczej bezwartościowe, jest bardziej przydatny do skoków do celów dalej.

1

Korzystając EasyMotion.

W twoim przypadku, <Leader><Leader>e, odpowiednie naciśnięcie klawisza (w tym przypadku b) spowoduje przesunięcie kursora na drugie y. Osobiście używam <Leader> jako wyzwalacza easymotion, więc jest to dla mnie tylko 3 naciśnięcia klawiszy. Główną zaletą jest to, że nie musisz zgadywać ani kalkulować.

Powiązane problemy