Czy w trybie wstawiania w Vimie jest jakiś sposób na przewijanie tekstu, przesuwając niektóre znaki do przodu i do tyłu, za pomocą klawiszy strzałek?
Gdybym naciśnij h, j, ki lpodczas gdy w trybie Insert, rzeczywiste znaki są drukowane na ekranie zamiast poruszania się po tekście.
Sposób, w jaki to robię w tej chwili, polega na uciekaniu się do Ctrl+ [( Esc) i przeglądaniu tekstu; ale oczywiście nie jest to produktywne.
imap jk <Esc>
), Abyś nie musiał łamać tempa i sięgać po klawiaturze, aby nacisnąć klawisz.<ESC>
) zamapowane nakj
zamiastjk
; moja koleżanka Dijkstra jest winna!jk
ikj
, więc po prostu naciskam go jak duży przycisk dwoma palcami i nie ma znaczenia kolejność, w której wracam do normy.Odpowiedzi:
Wygląda na to, że niewłaściwie używasz vima, ale prawdopodobnie wynika to z nieznajomości go.
Właściwy sposób to nacisnąć Esc, przejść tam, gdzie chcesz zrobić małą korektę, naprawić, wrócić i kontynuować edycję. Jest skuteczny, ponieważ Vim ma znacznie więcej ruchów niż zwykle postać do przodu / do tyłu / w górę / w dół. Gdy dowiesz się więcej o nich, stanie się to bardziej produktywne.
Oto kilka przypadków użycia:
Ale jeśli nadal chcesz zrobić z przechodzenia małych tekstowych bez wychodzenia z trybu edycji, wykonaj rson „s porady i używać Ctrl+ O. Biorąc pierwszy przykład, o którym wspomniałem powyżej, Ctrl+ OFfprzeniesie Cię do poprzedniej postaci „f” i pozostawi cię w trybie wstawiania.
źródło
Ctrl+o
do wydania pojedynczego polecenia w trybie normalnym. Może to czasami doprowadzić cię tam, gdzie chcesz być, szczególnie w połączeniu z poleceniami ruchu t / T i f / F.:h ins-special-keys
.ctrl-h
: backspace,:ctrl-w
usuń słowoctrl-u
,: usuń na początek liniialt-b
,: cofnij słowo.W trybie wstawiania użyj przycisku, CtrlOaby przejść do trybu normalnego tylko dla jednego polecenia:
co jest prawdopodobnie najprostszym sposobem robienia tego, co chcesz i łatwym do zapamiętania.
Inne bardzo przydatne klawisze sterujące w trybie wstawiania:
wyeliminują one wiele niepotrzebnych przełączeń z powrotem do trybu normalnego.
źródło
Tryb wstawiania
Ruch
hjkl
Niezależnie od tego, co powiedział Pavel Shved - że prawdopodobnie lepiej jest przyzwyczaić się do Escapingowania trybu Insert - oto przykładowy zestaw map do szybkiej nawigacji w trybie Insert:
Spowoduje to, że Alt+ hw trybie wstawiania przejdzie o jeden znak w lewo, Alt+ w jdół itd., Analogicznie jak hjklw trybie normalnym.
Musisz skopiować ten kod do pliku vimrc, aby był ładowany przy każdym uruchomieniu vim (możesz go otworzyć, pisząc
:new $myvimrc
zaczynając w trybie normalnym).Wszelkie ruchy w trybie normalnym
Ponieważ Altklawisz modyfikujący nie jest domyślnie odwzorowany (na coś ważnego), możesz w ten sam sposób przeciągnąć inne (lub wszystkie) funkcje z trybu normalnego do trybu wstawiania. Np .:
Przejście na początek bieżącego słowa za pomocą Alt+ b:
(Inne zastosowania Altw trybie wstawiania)
Warto wspomnieć, że użycie Altklucza może być lepsze niż replikacja zachowania w trybie normalnym: np. Oto mapowania do kopiowania z sąsiedniej linii części z bieżącej kolumny do końca linii:
(Użyłem
\
kontynuacji linii i wcięcia w celu zwiększenia przejrzystości - polecenia są interpretowane tak, jakby były zapisane w jednym wierszu).Wbudowane klawisze skrótów do edycji
(Nie ma żadnych wbudowanych skrótów klawiszowych do poruszania się w trybie wstawiania).
Odniesienie:
:help insert-index
Tryb wiersza poleceń
Ten zbiór odwzorowań sprawia górne Alt+ hjkl ruchy dostępne w linii poleceń:
Alternatywnie, te mapowania dodają ruchy zarówno do trybu Wstawiania, jak i trybu wiersza poleceń za jednym razem:
Polecenia odwzorowywania służące do wyciągania poleceń trybu normalnego do trybu wiersza polecenia wyglądają nieco inaczej niż polecenia odwzorowywania w trybie wstawiania (ponieważ w trybie wiersza poleceń brakuje trybu wstawiania Ctrl+ O):
Wbudowane klawisze skrótów do przenoszenia i edycji
Odniesienie:
:help ex-edit-index
źródło
Alt
klucz?Jeśli jesteś vim purystą, pomiń czytanie tej odpowiedzi. OTOH, jeśli jesteś nowy w vimie i szukasz kilku pomocnych wskazówek, których nie znajdziesz w setkach samouczków i blogów vim, czytaj dalej ... :-)
Kilka nieortodoksyjnych (vim) sposobów
Jest rok 2014 i jako osoba, która niedawno wróciła do
vim
, mogę zaoferować kilka, potencjalnie sprzecznych, punktów widzenia i wskazówek.Użyj Shift + Lewo lub Shift + Prawo, aby przechodzić między słowami
Podczas gdy powtarzanie jest potężnym pojęciem w vimie, osobiście uważam za dziwne, że użycie go zmusza mnie do liczenia (wierszy, znaków, słów itp.) Lub zgadywania. Mój mózg zwykle działa jak „Chcę kursor tam ”, a nie jak „Chcę kursor _5_words_to_the_left_”. Szybka możliwość przesuwania kursora i wizualna obserwacja miejsca wstawienia w ten sposób pozwala mi skupić się na tym, co edytuję, zamiast liczyć, ile przeskoków muszę zrobić, aby przejść do miejsca, w którym muszę edytować.
Włącz tryb myszy, użyj kółka myszy i kliknij
... do nawigacji po dużych fragmentach tekstu.
Większość (wszystkich) nowoczesnych komputerów ma touchpad ściśle zintegrowany z klawiaturą (np. MacBooki). Projektanci przemysłowi spędzili wiele lat, optymalizując te projekty, aby stary problem związany z odsuwaniem dłoni od klawiatury nie był już problemem. Okej, jeśli jesteś przyzwyczajony do myszy i nie lubisz się przełączać, ale dla każdego, kto jest w stanie vim (jak ci, którzy mogą znaleźć ten post podczas wyszukiwania), nie powinno to stanowić większego problemu.
Jako bonus, kliknięcie + przeciągnięcie wprowadza cię w tryb wizualny
Po włączeniu myszy klikanie i przeciąganie powoduje przejście do trybu wizualnego i oznaczenie regionu do zerwania.
I użyj kółka przewijania
Używanie myszy (kółka) do przewijania i klikanie w celu ustawienia kursora (duh) po prostu działa. Więcej informacji na ten temat można znaleźć na stronie http://usevim.com/2012/05/16/mouse/ .
A więc...
Są to, co nazwałbym bardziej nowoczesne (za pomocą myszy, kółka do przewijania itp.) Sposoby nawigacji w vimie, równie skuteczne w zależności od preferencji użytkownika.
HTH
źródło
Wiele osób w społeczności Vima twierdzi, że nie należy nawigować w trybie wstawiania, że nie jest to sposób Vima. Myślę, że jest to błędne zdanie na temat przejścia ze standardowych edytorów do Vima.
Vim jest najsilniejszy, gdy używasz swoich narzędzi do tworzenia atomowych, powtarzalnych akcji lub znalezisk.
Poruszanie się w trybie wstawiania jest prawidłowe, jeśli naprawiasz błąd popełniony w tej samej sesji wstawiania. Nie należy nawigować poza zakresem zmodyfikowanego tekstu.
Jeśli popełnisz błąd podczas wpisywania tekstu i wyjdziesz z trybu wstawiania, aby go naprawić, nie będziesz w stanie powtórzyć zamierzonej czynności,
.
powtórzy poprawkę.Vim obsługuje wiele klawiszy nawigacyjnych w trybie wstawiania. Oczywiście są klawisze strzałek, Strona główna i Koniec, ale jest też wiele innych skrótów. Zobaczyć
:h ins-special-keys
.źródło
W GVimie możesz używać myszy. Ale szczerze mówiąc, co jest złego w korzystaniu z klawiszy strzałek? Jest powód, dla którego są na klawiaturze.
źródło
Aby mieć nieco lepszą nawigację w trybie wstawiania, dlaczego nie zmapować niektórych klawiszy?
Jeśli potrafisz obejść działanie Meta-Key w swoim terminalu, możesz jeszcze bardziej wyśmiewać tryb emacs. Nawigacja w trybie normalnym jest znacznie lepsza, ale w przypadku krótszych ruchów pomaga pozostać w trybie wstawiania.
W przypadku dłuższych skoków wolę następujące domyślne tłumaczenie:
Powoduje to przejście do trybu normalnego i cofnięcie słowa
źródło
Wierzę Homei End(i PageUp/ PageDn) również działam normalnie w trybie wstawiania, ale poza tym nie sądzę, że istnieją inne standardowe klawisze zdefiniowane dla przejścia tekstu.
źródło
Przepraszamy, ale vim nie działa w ten sposób.
Powinieneś przełączyć się do trybu „normalnego”, nawigować, a następnie wrócić, aby wstawić ponownie.
źródło
Możesz tworzyć odwzorowania działające w trybie wstawiania. Można to zrobić za pomocą inoremap. Zwróć uwagę na „i” na początku polecenia (noremap jest przydatny, aby uniknąć kolizji mapy kluczy). Następstwem jest „n” dla trybu „normalnego”. Możesz przypuszczać, co vim uważa za „normalny”;)
JEDNAK naprawdę chcesz nawigować w tekście za pomocą trybu „normalnego”. Vim jest super w tego rodzaju rzeczach i cała ta moc jest dostępna w trybie normalnym. Vim już zapewnia łatwe sposoby przejścia z trybu normalnego do trybu wstawiania (np. I, I, a, A, o, O). Sztuką jest ułatwienie przejścia do trybu normalnego. Sposobem na to jest ponowne mapowanie ucieczki na bardziej pewny klucz. Ale potrzebujesz takiego, który nie będzie kolidował z twoim regularnym pisaniem. Używam:
Ponieważ jj (to 2 j jest szybko wpisywane jeden po drugim) wydaje się, że nie pojawia się w moim słowniku. Inne przemapują do wygodnego miejsca.
Inną istotną zmianą, którą wprowadzam, jest przełączanie klawiszy CAPSLOCK i CONTROL na klawiaturze (używając konfiguracji klawiatury komputera hosta), ponieważ prawie nigdy nie używam CAPSLOCK i ma ten duży, piękny przycisk dokładnie tam, gdzie chcę. (Jest to typowe dla użytkowników Emacsa. Minusem jest to, że znajdziesz się na „nie naprawionej” klawiaturze! Aaarggh!)
Po ponownym przypisaniu CAPSLOCK można wygodnie użyć następujących zmian mapowania w trybie wstawiania:
Pamiętając, że niektóre klucze są już zmapowane w trybie wstawiania (domyślnie słowo-zabójstwo to Cw (Control-w), możesz już mieć powiązania, które chcesz. To powiedziawszy, wolę Ch, więc w moim .vimrc mam :
ALE prawdopodobnie chcesz tego samego skurczu pamięci mięśni w trybie normalnym, więc mapuję też Ch:
(d) elete (b) ackwards dokonuje tego samego za pomocą tego samego akordu klawiszowego. Ten rodzaj szybkiej edycji jest przydatny w praktyce w przypadku literówek. Ale trzymaj się normalnego trybu, aby poruszać się po tekście i cokolwiek więcej niż zabić poprzednie słowo. Gdy nauczysz się zmieniać tryby (używając oczywiście remapu), będzie to o wiele bardziej wydajne niż remapowanie trybu wstawiania.
źródło
Możesz użyć
imap
do mapowania dowolnego klawisza w trybie wstawiania na jeden z klawiszy kursora. Tak jak:Teraz h działa jak w trybie normalnym, przesuwając kursor. (Mapowanie hw ten sposób jest oczywiście złym wyborem)
Powiedziawszy, że nie sądzę, aby standardowy sposób poruszania się w tekście za pomocą VIM był „nieproduktywny”. Istnieje wiele bardzo skutecznych sposobów przechodzenia przez tekst w trybie normalnym (np. Za pomocą w i b, lub / i? Lub f i F itp.)
źródło
Dla niektórych często używanych ruchów i akcji zdefiniowałem następujące mapowania. Oszczędza to naciśnięcie klawisza w porównaniu z kombinacją CTRL + O, a ponieważ potrzebuję ich często, opłacają się na dłuższą metę.
źródło