Myślę, że pozwoliłoby to na wizualną funkcję selekcji vima, która przewyższałaby efektywność nawet myszy, zapewniając możliwość „przełączania” bieżącego zakończenia selekcji:
Ilustrowany ( |
powinien reprezentować kursor (Vim ma operować po lewej stronie znaku, na którym się znajduje) i [text]
reprezentuje zaznaczony tekst, po prostu udawaj, że zajmują zerową szerokość. Tło przestrzeni między [ ]
wydaje się szare, a znak natychmiast następującego po |
to zielona):
Zacząć od
Some |text here
Some second line of text
Some more text in the third line
Naciśnij v2j
; uwaga: m
znak jest zawarty w zaznaczeniu (jest teraz podświetlony kursorem):
Some [text here
Some second line of text
Some |m]ore text in the third line
Naciśnij 10l
:
Some [text here
Some second line of text
Some more text |i]n the third line
W tym momencie mogę zdecydować, że chcę zacząć wybierać z innej lokalizacji. np. w tym "Some"
w pierwszym wierszu.
Nie mam wyboru w typowym edytorze / IDE. Prawdopodobnie musiałbym przesunąć rękę do myszy, zwykle jest to zbyt bolesne, aby zaznaczyć tekst tradycyjnymi metodami, użycie przeskakiwania słów przez Ctrl
i przewijanie stron w górę nieco pomaga, ale bez względu na to, muszę to zrobić do jednego z moich końcowych punktów selekcji przed rozpoczęciem selekcji .
Tak więc w Vimie chciałbym mieć możliwość wzięcia mojego obecnego stanu i doprowadzenia go do tego, poprzez uderzenie w tajemnicę wiążącą:
Some [|text here
Some second line of text
Some more text i]n the third line
Następnie mogę po prostu nacisnąć ^
lub <Home>
(oba robią to samo w tym przypadku, gdy nie ma wiodących białych znaków), aby je zmienić
[|Some text here
Some second line of text
Some more text i]n the third line
Powiedzieć, że zmienię zdanie jeszcze raz , chcę ustawić drugi koniec!
[Some text here
Some second line of text
Some more text |i]n the third line
Hit e
:
[Some text here
Some second line of text
Some more text i|n] the third line
Piękny! Dzięki temu wyborowi mogę teraz robić, co chcę dalej.
Więc co wiąże ta tajemnica?
Jeszcze bardziej potencjalnie wydajny byłby zestaw alternatywnych powiązań dla niektórych najczęściej używanych poleceń ruchu z innym rzędem klawiszy, a one (w trybie wizualnym) zawsze przesuwałyby drugi koniec zaznaczenia. Więc w tej operacji wyboru trybu wizualnego, gdyby klawisze ruchu dla drugiego końca zaznaczenia były ustawione na „yuio” (prawdopodobnie nie jest to dobry wybór, ponieważ trochę potrzebujemy, y
ale po prostu sobie radzimy) moglibyśmy pisać
v2j10l5ye
zamiast
v2j10lX^Xe
Hej, wiesz co, to nie jest nawet tak duża poprawa. Po prostu daj mi tę funkcję X. :)
Idealne odpowiedzi, których szukam:
- Hej, spójrz w górę
:help some_awesome_vim_feature_that_just_does_this
- Hej, spójrz na
https://github.com/awesome_user/vim_plugin_that_does_this
- Hej, spójrz na
:help vimscript_functions_that_allow_mutation_of_visual_selections
Jestem całkiem nowy w tej fascynacji Vimem, więc jestem bardzo zielony, jeśli chodzi o Vimscript, i szczerze mówiąc, chciałbym trzymać się z daleka od nauki innego języka, więc mam nadzieję, że nie będę zmuszony budować tego jako wtyczka.
:help
? :help visual-mode
zawiera wszystkie informacje, których możesz potrzebować na temat trybu wizualnego, w tym o
.
O
robi kapitał O, ale zapamiętam o
. Drugą rzeczą, o której mówisz, jest prawdopodobnie użycie :help
więcej. I używałem go więcej niż na początku.