Przeczytałem go w wielu artykułach ( np. ), Że używanie klawiszy strzałek w trybie normalnym jest złą praktyką. Czy ktoś mógłby wyjaśnić, dlaczego uważa to za niewłaściwą praktykę?
key-bindings
cursor-movement
Ankit Jain
źródło
źródło
hjkl
w Dvorak. Jest to zdecydowanie mniej rozsądne niż w przypadku qwerty, ale nie wiem, czy nazwałbym to „trudnym w użyciu”; to tylko klucze i nie jest tak, że trudno jest do nich dotrzeć lub cokolwiek, gdy się do tego przyzwyczaisz.hjkl
powinna być najlepsza opcja poruszania się w dokumencie. Prawda jest taka, że niektóre klawiatury miały włączone klawisze strzałekhjkl
w czasie tworzenia vi, więc vi używała tych samych klawiszy w trybie normalnym, aby dopasować układ klawiatury. Oto artykuł ze zdjęciem klawiatury: catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keyshjkl
. Dobre. Ale stają się zawyżone do rangi dogmatów, przynajmniej częściowo, ponieważ ludzie muszą czuć się lepsi od innych.hjkl
nie są najlepsze w dvorak. Ale jako użytkownik dvoraka mogę znaleźć je trochę przydatne, ponieważ są sparowane razem: jakjk
na jednej stronie planszy; ihl
po drugiej stronie.Odpowiedzi:
W rzeczywistości nie jest to zła praktyka.
Wiele osób (w tym dokument Vima, jak pokazuje odpowiedź @B Layer ) argumentuje, że nie należy używać klawiszy strzałek, ponieważ powoduje to, że dłonie przesuwają się z głównego rzędu (druga linia klawiatury, gdzie masz hjkl), a to czyni cię mniej wydajnym .
Jest to (przynajmniej IMO) zły wynik szarpnięcia kół vim „purystów”: nowi użytkownicy śledzą to ślepo, niektórzy nawet wyłączają klawisze strzałek, a następnie narzekają, że nie są tak wydajni jak wcześniej.
Jedyna prawdziwa reguła do użytku vim jest efektywnie z niego korzystać: jeśli czujesz się bardziej komfortowo przy użyciu Lefti Rightnie hi l czy to za pomocą klawiszy strzałek. Vim ma nawet
set mouse=a
opcję, jeśli chcesz użyć myszy!Po przyzwyczaić do Vima i lepiej z różnych dostępnych ruchów ( f, t, ,, ;, w, b, e, ge, a przede wszystkim w
:h quickref
), które może uświadomić sobie, że nie używaj strzałek, że dużo. A jeśli nadal z nich korzystasz, to nie jest problem, użyj tego, na czym jesteś najbardziej wydajny.Zauważ, że argument, by nie opuszczać rzędu głównego dla większej wydajności, nie jest moim zdaniem zbyt dobry: jeśli spojrzysz na Dlaczego vim używa hjkl , zobaczysz, że te klucze zostały wybrane, ponieważ nie było żadnej strzałki klucze, kiedy napisano Vi. Można argumentować, że być może, gdyby klawiatury były inne w tym czasie, nikt nie pomyślałby o niestosowaniu klawiszy strzałek.
źródło
hjkl
do odciążenia bólu nadgarstka.Nie wiem, czy to jest naprawdę istotne, ale jestem starodawny, więc oto trochę historii.
W dawnych czasach terminale VT100 posiadały klawisze strzałek, ale naciśnięcie jednego z nich przekazywało sekwencję ucieczki, np. W
<ESC>[A
górę,<ESC>[B
w dół itp.Ponadto, będąc terminalem szeregowym komunikującym się z prędkością 9600 bodów, użytkownik mógł zbyt szybko naciskać klawisze aby przekazać całą sekwencję, która spowodowałaby, że jedno naciśnięcie klawisza przerwałoby sekwencję poprzedniego naciśnięcia klawisza i myliło vi.
Spowodowałoby to, że vi niewytłumaczalnie przejdzie w tryb wstawiania i wstawia [B [B [B [B [B [B [B] do pliku), jeśli przytrzymasz strzałkę w dół. Mówię w niewytłumaczalny sposób, ponieważ nie ma nic w tej sekwencji, która powinna wejść w tryb wstawiania, a fakt, że każda sekwencja zaczyna się znakiem ESC, powinien wyjść z trybu wstawiania. Ale nadal wstawiałby śmieci. Nie zawsze - tylko wtedy, gdy się spieszysz.
Jeden szybko się tym zmęczył i postanowił po prostu trzymać się
hjkl
kluczy.źródło
Chociaż zgadzam się z @statox, że nikt nie powinien być karany, odrzucany, ekskomunikowany lub smołowany i upierzony, jeśli zdecyduje się użyć klawiszy strzałek ... użyj oprogramowania, które uważasz za stosowne ... dużo bardziej laissez-faire, gdybym udzielał wskazówek nowemu użytkownikowi z otwartym umysłem. Zdecydowanie polecam, aby zaczęły od stosowania najlepszych praktyk. Są „najlepszymi praktykami” z jakiegoś powodu… zostały z powodzeniem zastosowane przez wiele osób, które przyszły przede mną i mną.
Do licha, nawet pomoc Vima popycha cię w tym kierunku , choć nie bez hiperboli („ bardzo spowalnia”) ...
Istnieje również fakt, że wszelkie wybory dokonane na początku mogą stać się nawykami, które trudno przełamać, jeśli chcesz zmienić w przyszłości. Więc wszystko inne jest równe, dlaczego nie przyjąć teraz zalecanego nawyku, zamiast ryzykować, że używanie klawiszy strzałek jest nieefektywne lub zabija nadgarstki?
Podsumowując, rozważ uczciwy wysiłek, aby robić rzeczy bez klawiszy strzałek. Po rozsądnym czasie, jeśli nie możesz żyć bez góry / dół / lewo / prawo ... nie.
... powiedziałbym nowemu użytkownikowi, który był zainteresowany moją opinią. Nie bierz tego osobiście, jeśli się nie zgadzasz (mówię do ciebie, downvoter).
źródło
don't think it's necessary to rank best practices
Wydaje mi się, że powinniśmy skupić się na rzeczach, które dają nam najlepszą wartość w życiu, biorąc pod uwagę, że zasoby są ograniczone, a życie krótkie. Zdarza mi się wiedzieć, że klawisze hjkl są sercem z powodu źle spędzonego dzieciństwa, grając w nieuczciwych, larn, angband itp. Na laptopie bez klawiatury numerycznej, ale niektórzy ludzie spędzili swoje dzieciństwo lepiej i mimo to będą musieli „oduczać” klawisze strzałek. Myślę, że uczenie się ruchów, zakresów itp. Jest znacznie bardziej użytecznym sposobem spędzania czasu.Inne odpowiedzi mówiły, że utrata wydajności w wyniku przenoszenia rąk z domowego rzędu nie jest aż tak wielka, i w większości się z tym zgadzam. Jednak to, co jest wielka sprawa jest kiedy uczysz się vim, zawsze za pomocą klawiszy strzałek, aby uniknąć przełączania z powrotem do trybu normalnego.
Innymi słowy, użycie jednego, w ←którym użyłbyś jednego, hnie jest ogromną stratą wydajności, ale użycie ←←←←←←←←←←tam, gdzie mógłbyś użyć, EscI jest ogromną stratą.
Dlatego ludzie mówią ci, aby unikać klawiszy strzałek podczas nauki vima, ponieważ zmusza cię to do nauki trybu normalnego zamiast nigdy wychodzenia z trybu wstawiania. Tryb normalny to miejsce, w którym znajdują się wszystkie przyrosty wydajności.
źródło
hjkl
”. (Zachowanie celowej hiperboli.)←
mógłbyś użyć1
0
←
lub nawet prościejHome
. Ten ostatni działa nawet w Notatniku Windows.Są dwa główne powody, dla których ludzie mówią, że nie powinieneś używać klawiszy strzałek. Niektórzy twierdzą, że hjkl jest preferowany, ponieważ trzyma ręce w głównym rzędzie, co nie jest fałszywe , ale także nie ma znaczenia. Inni, w tym ja, powiedzieliby, że nie powinieneś używać klawiszy strzałek, jeśli przenosisz więcej niż kilka znaków, ale nie powinieneś także używać hjkl.
Ważną rzeczą nie jest to, jakich kluczy używasz, ale raczej ile . Jeśli chcesz przejść do początku słowa, nie uderzasz
hhh
; uderzyłeśb
. Koniec słowa toe
niellll
. Początek linii:0
, koniec linii:$
. I cokolwiek więcej,/search
dla tekstu, który istnieje tam, gdzie chcesz iść. (lub dowolne z zaawansowanych poleceń ruchu, które wolisz).Ale za każdym razem, gdy piszesz ten sam klawisz więcej niż dwa razy z rzędu, istnieje lepszy sposób, aby to zrobić.
źródło
Bardziej precyzyjne stwierdzenie może brzmieć: „używanie klawiszy strzałek to zła praktyka podczas próby lepszego nauczenia się vima ” . Osoby nowe w vimie są przyzwyczajone do poruszania się za pomocą klawiszy strzałek, więc nie uczą się
hjkl
, a tym samym nie mają szansy zobaczyć, czy jest to lepsze.Osobiście, po zapoznaniu się z vimem, na pewien czas wyłączyłem klawisze strzałek , aby się zawiesić
hjkl
i włączyłem je później, aby uprościć mój.vimrc
. W moim przypadku tradycyjna mądrość; kiedy już wiedziałem, jak korzystać z obuhjkl
klawiszy strzałek, niemal całkowicie używałem tych pierwszych.źródło
Zwykła odpowiedź wymaga wydajności. Prawdopodobnie przez lata byłeś szkolony w zakresie posługiwania się pisaniem za pomocą dotyku, co wymaga trzymania rąk na asdf i jkl ;. Zdecydowana większość kluczowych powiązań w Vi została zaprojektowana wokół tego faktu, w tym polecenia ruchu hjkl.
Osobiście korzystam z obu. Używam hjkl, gdy aktywnie edytuję duże sekcje tekstu, a klawiszy strzałek, gdy przewijam pliki dziennika (i |, g, i / kiedy wykonuję edycję punktową w całym pliku). Tak się po prostu sprawdza, a w takim przypadku tak naprawdę to się liczy.
źródło
Dawno temu wiele terminali nie miało klawiszy strzałek lub nie posiadało wszystkich czterech z nich. Systemy oprogramowania, które wymagały nawigacji, zwykle zapewniały pewne podejście nawigacyjne bez polegania na klawiszach strzałek, a hjkl vi jest kanonicznym przykładem. (Innym klasycznym przykładem jest WordStar ^ E- ^ S- ^ X- ^ D.) Ponieważ narzędzie do nawigacji na klawiaturze stawało się coraz bardziej oczywiste, coraz więcej nowych terminali zaczęło pojawiać się ze strzałkami, a systemy oprogramowania często mapowały je na stare sposoby nawigacja. To jednak rodziło pewne obawy związane z przenośnością: jeśli dzieci szkolone w szkołach miałyby polegać na tak wymyślnej, wymyślnej funkcji, jak klawisze strzałek, myśleli się, że mogą nie być w stanie produktywnie - raz powszechne - klawiatury bez klawiszy strzałek.
Tak więc nauczyciele kursów podstaw komputerowych zaczęli ostrożnie ostrzegać uczniów, aby nauczyli się używać najniższego wspólnego mianownika, aby zmaksymalizować ich szanse na zatrudnienie. I ta praktyka dawno przeżyła wszelkie powody, które kiedyś miała.
We współczesnych implementacjach vi głównym powodem preferowania hjkl jest to, że używanie klawiszy znajdujących się pod ręką jest nieco szybsze niż przenoszenie ręki w dowolne miejsce, w którym znajdują się klawisze strzałek. Minusem unikania zmiany kontekstu ręki jest oczywiście to, że może być konieczne wykonanie zmiany kontekstu vi. W dzisiejszych czasach, kiedy ludzie bardzo rzadko cenią sobie szybkość pisania, to, czy robisz jedno, czy drugie, jest raczej kwestią osobistych preferencji i nie ma nic złego w używaniu klawiszy strzałek, jeśli kiedykolwiek tak było.
źródło