Stać się lepszym w Vimie [zamknięte]

116

Używam Vima od dłuższego czasu, ale jestem na poziomie, na którym przez większość czasu używam trybu wstawiania i nadal używam klawiszy strzałek do poruszania się (!).

Wydaje mi się, że nie wykorzystuję tego, co najlepsze w moim cudownym edytorze, szczególnie w odniesieniu do nawigacji (zwłaszcza kodu), kopiowania i wklejania oraz innych manipulacji istniejącym kodem. (chociaż czuję się dobrze ze skomplikowanymi wzorcami wyszukiwania / zamiany).

  • Jak mam się dowiedzieć więcej?
  • Jakie zasoby poleciliby ludzie?
James
źródło
8
Co jest złego w używaniu klawiszy strzałek do poruszania się? To właśnie oni są za !
Vilx-
39
@Vilx, nie poruszasz się za pomocą klawiszy strzałek nawet w komputerowych grach akcji ! Nie mówiąc już o edytorach tekstu ...
P Shved
6
@Vilx: Klawisze strzałek na klawiaturze znajdują się w strasznie niewygodnym miejscu do jakiejkolwiek nawigacji. Dlatego kanon w ViM polega na używaniu HJKL, tak jak w przypadku gry z perspektywy pierwszej osoby WASD.
Will Vousden,
4
WASD jest tam, ponieważ łatwiej jest go używać lewą ręką, ponieważ prawa kontroluje mysz. Osoby leworęczne używają strzałek. A HJKL jest tak sprzeczne z intuicją. Który gdzie się rusza?
Vilx-
8
Cóż, myślę, że nie chodzi o „strzały kontra hjkl”, ale o „ruch kursora a obiekty tekstowe”.
Matteo Riva

Odpowiedzi:

78

„Dlaczego, och, DLACZEGO ci #? @! Wariaci używają vi?” jest miłym wprowadzeniem do "drogi Vima", szczególnie o obiektach tekstowych, które są jedną z najbardziej definiujących cech Vima.

Matteo Riva
źródło
3
Jako bonus, jest ładny graficzny ściągawka (link na końcu artykułu).
Csaba_H
Wygląda na to, że nie mogę uzyskać dostępu do tego linku. Nawet z lokami. Czy ktoś może potwierdzić?
H.Rabiee
66

Oto kilka niesamowitych screencastów, które powinny dać ci wyobrażenie o tym, czego się dalej nauczyć. Istnieją również filmy na średnio-zaawansowane i zaawansowane tematy, ale te nowatorskie są tak naprawdę najważniejsze.

Ponadto, kiedy poczułem, że jestem w stagnacji i nie uczę się „w sposób Vima”, zdecydowałem się wyłączyć klawisze strzałek zarówno w trybie normalnym, jak i w trybie wstawiania. To zmusza cię do używania ESC, aby gdzieś się dostać i sprawia, że ​​myślisz bardziej jak Vim. Ostatecznie ponownie włączyłem klawisze strzałek w trybie wstawiania, ale prawie nigdy ich nie używam. Najczęściej są lepsze sposoby poruszania się.

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

A szczególnie

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>
Sarah
źródło
5
Podoba mi się pomysł wyłączenia klawiszy strzałek, to fajny sposób, aby zmusić się do zaprzestania ich używania.
Idan K
1
U mnie to działało bardzo dobrze, ale pierwsze dni były bardzo frustrujące. Kiedy już się do tego przyzwyczaisz i porzucisz nawyk zbytniego poruszania się w trybie wstawiania, zalecam ponowne włączenie imap.
Sarah,
Te screencasty były niesamowite. Dzięki za wskazanie.
Mert Nuhoglu
2
Wyłączenie klawiszy strzałek to NIESAMOWITY pomysł, właśnie to robię.
gorsky
Wyłączenie klawiszy strzałek opiera się na założeniu, że klawisze strzałek są bardziej na uboczu niż hjkl. Lepiej jest mieć lepszą klawiaturę. Używam Kinesis Advantage. Nawet gdybym używał standardowej klawiatury, hjkl nadal nie ma sensu, ponieważ używam dvoraka. Chcę przez to powiedzieć: nie chodzi o to, żeby „nie używać klawiszy strzałek”, ale o „Używać najbardziej wydajnych środków i nie uchylać się od wzrostu wydajności z powodu krzywej uczenia się”.
Limited Atonement
23
  1. wpisz vimtutorw wierszu poleceń
  2. wejdź do vima, wpisz: help lub <F1>
  3. zapisz się na listę mailingową
  4. oficjalne dokumenty VIM
ghostdog74
źródło
1
Jedyną rzeczą, której nie brałem pod uwagę, było dołączenie do listy mailingowej: gotowe :)
James
1
to dobre miejsce, aby uzyskać pomoc i ćwiczyć swoje umiejętności vim, rozwiązując problemy innych ludzi.
ghostdog74
1
+1 dla vimtutora - doskonały sposób na przeniesienie vima do pamięci mięśniowej.
Hamish Downer
16

Jeszcze dwie wskazówki:

  • Użyj Vima do edycji wszystkiego (e-maile, formularze internetowe, kod, ...). Kiedy coś wydaje się powolne, prawdopodobnie istnieje szybszy sposób na zrobienie tego. :helpgrepjest twoim przyjacielem.

  • Udaj się na http://vimgolf.com/ i rywalizuj. W ten sposób nauczyłem się wielu wskazówek i sztuczek. [ Zastrzeżenie : nie przyjmuje się żadnej odpowiedzialności za długie okresy, które „ giną ” podczas rywalizacji w VimGolf ].

Johnsyweb
źródło
2
Schludnie, nie wiedziałem o vimgolfie!
James,
1
@Autopulated: Dodałem wyłączenie odpowiedzialności.
Johnsyweb,
2
@Johnsyweb: Naprawdę chcę móc używać Vima do wszystkiego - ale jak? Uzyskanie odpowiedniego klonu Vima w każdym formularzu internetowym byłoby idealne - ponieważ wszystkie dodatki przeglądarki, które znalazłem, zwykle implementują tylko niewielki, losowy podzbiór funkcji Vima i ponownie mapują skróty klawiszowe, aby uwzględnić fakt, że przeglądarka nadal potrzebuje dostęp do niektórych mapowań klawiszy.
Conrad Dean
10

W ten sposób nauczyłem się Vima (i wielu innych rzeczy). To całkiem proste.

Przejrzyj dokumenty pomocy i znajdź polecenie dotyczące czegoś, co robisz przez cały czas. Na przykład usuń całe słowo. Postaraj się o tym pamiętać.

Teraz następnym razem, gdy zauważysz, że naciskasz „xxxxx”, aby usunąć słowo, zatrzymaj się, włóż je z powrotem i użyj nowego polecenia. Sprawdź to, jeśli musisz. Zamiast więc naciskać „xxxxxx”, wróć i naciśnij „dw”.

Rób to w kółko, na początku będzie to powolne, ale w końcu się utrzyma.

Po wykonaniu tego polecenia zacznij od góry. Znajdź inne polecenie dla czynności, którą wykonujesz cały czas ...

Zdziwiłbyś się, jak szybko możesz w ten sposób przyswajać nowe polecenia i techniki.

Dennis Hostetler
źródło
7

Ponowne odwzorowanie / wyłączenie klawiszy strzałek, jak zostało zasugerowane, to świetny sposób, aby zmusić się do ich nie używania.

Kolejna rzecz do rozważenia: jeśli naciśnięcie Esc na klawiaturze jest w ogóle niewygodne, możesz chcieć zmienić mapowanie Caps Lock na Esc w swoim systemie operacyjnym. Dla mnie był to niezwykle pomocny krok, ponieważ Esc jest niezręcznym zasięgiem na moim KB i była to kolejna przeszkoda, która utrzymywała mnie w trybie wstawiania (ponieważ ciężko było się wydostać). Posiadanie Esc na Caps Lock sprawia, że ​​jest to niewielki zasięg, a wskakiwanie i wychodzenie z trybu wstawiania jest bardzo szybkie.

Do nauki zaawansowanych rzeczy w Vimie najlepszym zasobem jest: help, ale aby opanować podstawy, wystarczy to zrobić; to przede wszystkim pamięć mięśniowa. Mówisz, że znasz wyszukiwanie. Świadomie używaj go jako narzędzia nawigacyjnego. Wyszukiwania [/,?] I wyszukiwania oparte na znakach wbudowanych [f, F, t, T] to tylko niektóre z kluczowych narzędzi nawigacyjnych Vima. Po prostu ich używaj; w połączeniu z wyłączonymi klawiszami kursora, w mgnieniu oka samodzielnie poruszasz się po pamięci mięśniowej.

Obiekty tekstowe. Z łatwością jedna z najlepszych funkcji edytora. To druga rzecz, którą należy natychmiast świadomie ćwiczyć. Rzeczy takie jak „yiw”, „dit” itp. Są tak potężne i szybkie; nauka i używanie ich samodzielnie sprawi, że poczujesz się jak użytkownik Vima.

Gdy masz już obiekty tekstowe i podstawową nawigację, czas przejść do czytania i uczenia się z: help regularnie i przeszukiwania sieci w poszukiwaniu niesamowitych wtyczek. Poważnie, możesz używać Vima przez lata i mieć „ah ha!” moment przypadkowego natknięcia się na jakąś niejasną ciekawostkę w: pomoc, której nigdy nie znałeś.

numery1311407
źródło
Zamiast ponownego mapowania do Caps Lock sugerowałbym Ctrl-C. Jest to łatwe do wpisania i dość znane użytkownikom Linuksa.
BandGap
6

Zobacz ten wątek: Jaki jest twój najbardziej produktywny skrót z Vimem?

Szczególnie pierwsza odpowiedź.

Konrad Garus
źródło
3
Jako autor „pierwszej” odpowiedzi, muszę przyznać, z całą uczciwością, że niekoniecznie jest to najlepszy przewodnik, aby ogólnie poprawić swoje opanowanie edytora. Omawia wiele zagadnień dotyczących tego, co można zrobić z vi, gdy myślisz o nim jako o języku do wyrażania sposobów, w jakie chcesz manipulować tekstem, ekranem / terminalem i środowiskiem samego edytora. Jednak wiele rzeczy jest tam dość zaawansowanych.
Jim Dennis,
1
Czytając tę ​​odpowiedź, nauczyłem się nie tyle, że nie sądzę, żebym kiedykolwiek się tego nauczył, czytając dokumentację!
James,
3

Jak mam się dowiedzieć więcej?

Przeczytaj całkowicie podręcznik vima (wpisz :h; możesz przeglądać stamtąd). W ten sposób poznasz wszystkie ruchy i polecenia. Jest to najbardziej przydatne, jeśli znasz już podstawy i chcesz coś ulepszyć.

Jakie zasoby poleciliby ludzie?

vim.org, przejrzyj najpopularniejsze skrypty vim . Sprawdź ich źródła, jeśli znajdziesz coś dla siebie. Lub po prostu je zainstaluj i ciesz się. Ta witryna zawiera wiele linków do skryptów, które pomagają przeglądać kod źródłowy w różnych językach; i stosunkowo łatwo je tam znaleźć.

Pomocna może też być witryna StackOverflow.com .

P Shved
źródło
3

Stworzyłem tę grę, aby pomóc mojemu siostrzeńcowi w nauce, ale działa tylko w przeglądarkach Firefox i Chrome>. < http://kikuchiyo.org

Na razie zajmuje się tylko ruchem i wejściem w tryb wstawiania. Wersja beta pozwala atakować wrogów mieczem świetlnym, „i” po lewej, a „a” po prawej: P

Próbuj dalej uczyć się Vima, warto!

:)

kikuchiyo
źródło
Teraz , że jest to naprawdę dobry pomysł!
James
Aktualizacja: strona jest teraz pod adresem kikuchiyos-vim-game.herokuapp.com .
kikuchiyo,
2

Nadal używam klawiszy strzałek do poruszania się (!).

Nie widzę z tym problemu.

Szczerze mówiąc, jakie jest prawdopodobieństwo, że będziesz musiał używać Vima i klawiatury bez klawiszy strzałek?

Wiesz, większość ludzi używa vima, ponieważ wykonuje swoją pracę (no cóż, ponieważ opanowali go do poziomu, w którym robi to za nich), a nie elitarność (jak nie używanie klawiszy strzałek).

Kilka porad, jak poprawić swoją wiedzę o vimie:

  • okresowo otwieraj pomoc vim w losowym miejscu i czytaj o losowej, odrębnej funkcji. Zajmie ci to kilka minut. Możliwe, że nie będziesz używać tej funkcji przez następne X lat. Ale jeśli masz szczęście, znajdziesz się w sytuacji, w której zobaczysz, że możesz zastosować swoją wiedzę o tej funkcji, aby wykonać określone zadanie. Ponownie otworzysz pomoc, aby odświeżyć swoją pamięć. Po kilkukrotnym użyciu tej funkcji w praktyce będzie się ona trzymać. W tym momencie twoja wiedza o vimie ulegnie poprawie.
  • użyj: helpgrep, aby zagłębić się w przypadkowych miejscach dokumentacji. Jeśli musisz coś zrobić i znajdziesz miejsce, które to wyjaśnia w dokumentach, nie poprzestawaj na tym. Przeczytaj fragment dokumentu jeszcze raz. Znajdź słowa kluczowe. Dla każdego słowa kluczowego użyj słowa kluczowego: helpgrep, aby odkryć logiczne powiązania z innymi częściami dokumentacji vima.
Alex_coder
źródło
Wydaje mi się, że problem, jaki mam po prostu czytając dokumentację, polega na tym, że nie uczę się rzeczy zbyt efektywnie bez ich wykonywania .
James,
1
Używanie klawiszy kursora do przesuwania kursora na krótkie odległości może być tak samo wydajne, jak używanie klawiszy [h], [j], [k], [l] ... jeśli zdarzy się, że Twoje palce znajdują się blisko nich z innego powodu. Używanie jakichkolwiek liniowych ruchów kursora jest okropne w przypadku więcej niż kilku kolumn lub linii ruchu. Zwykle najlepiej jest pomyśleć o tym, czego szukasz i wyrazić to bezpośrednio w vi za pomocą / lub? polecenia i wyrażenia regularne. Ostatni fragment tekstu w pobliżu foo? G? Foo [Enter] (sześć naciśnięć klawiszy). Pierwsza linijka z „bar… coś… huk w tym? 1G / bar. * Bang [Enter] (kilkanaście naciśnięć klawiszy)… i tak dalej.
Jim Dennis
Chociaż klawisze strzałek są prawdopodobnie bardziej wydajne niż sięganie po mysz, jeśli piszesz za pomocą klawiszy głównego rzędu, aby przegrupować ręce po wpisaniu sekwencji znaków, nie jest wymagany ruch, aby wprowadzić jeden z podstawowych klawiszy ruchu „j”, „k”, „l” i lekkie „drgnięcie” w lewo, aby uzyskać klawisz „h”. Jeśli robisz rzeczy w sposób Vim, twoje ręce powinny być zawsze bliżej klawiszy głównego rzędu niż klawiszy strzałek. Ćwicz dalej, a dostaniesz to. :)
kikuchiyo
2

Rzucam okiem na tę listę najlepszych porad VIM od czasu do czasu i nadal regularnie wybieram nowe sztuczki.

Brian Rasmussen
źródło
2

sposób, w jaki przestałem używać klawiszy strzałek, nie wyłączał ich (nadal używam ich w trybie Insert), ale jeśli pomyślisz o tym, jeśli chcesz iść w prawo, użyj swojego małego palca, który jest lklawiszem, idź w lewo Palec wskazujący hklawisz, & ring finger up („ring up”) the kkey & „take down” the jkey.

Więc pierwsza z czterech cyfr na twojej dłoni (zapomnij o kciuku) Indeks jest najbardziej na lewo, a Pinky jest najbardziej na prawo. Użyj wyrażenia „zadzwoń”, jak w rozmowie telefonicznej o wznoszenie palcem serdecznym, a środkowy palec nie ma innego miejsca, jak tylko w dół.

Bardzo pomaga mi też zapomnienie o nazwach kluczy (h, j, k, l). Nie ma dobrego mnemonika do zapamiętywania ich w ten sposób, który znalazłem, i nie ma zbyt wielu mapowań używających tych kluczy.

phildobbin
źródło
0

1- przeczytaj to

2- Jeśli używasz czytnika rss, zapisz się na te strony

Strona 1

Strona 2

aliva
źródło