Jak wybrać między nawiasami (lub cudzysłowami lub ...) w Vimie?
Jestem pewien, że kiedyś była wtyczka do tego rodzaju rzeczy, ale teraz, gdy jej potrzebuję, nie mogę jej znaleźć (naturalnie), więc po prostu zapytam ładnie i prosto.
Jaki jest najprostszy sposób wyboru pomiędzy nawiasami, cudzysłowami lub ogólnie listą pasujących znaków?
write ( *, '(a)' ) 'Computed solution coefficients:'
Na przykład tutaj chciałbym wybrać (a)
, lub Computed solution coefficients:
.
9 answers
Użyj dowolnego klawisza nawigacyjnego, który chcesz dostać się do nawiasów, a następnie możesz użyć yi(
lub yi)
, aby skopiować wszystko w pasujących nawiasach. Działa to również z nawiasami kwadratowymi (np. yi]
) i nawiasami klamrowymi. Oprócz y
można również usunąć lub zmienić tekst (np. ci)
, di]
).
Próbowałem tego z podwójnymi i pojedynczymi cytatami i wydaje się, że tam również działa. Dla Twoich danych robię:
write (*, '(a)') 'Computed solution coefficients:'
Przesuń kursor do C
, a następnie wpisz yi'
. Move the kursor do pustej linii, Naciśnij p
i pobierz
Computed solution coefficients:
Jak zauważył CMS , Działa to również w przypadku wyboru trybu wizualnego - wystarczy użyć vi)
, vi}
, vi'
, itd.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:43
Aby wybrać pomiędzy pojedynczymi cudzysłowami Zwykle wykonuję vi'
("wybierz wewnętrzne pojedyncze cudzysłowy").
Wewnątrz bloku nawiasów, używam vib
("wybierz wewnętrzny blok")
Wewnątrz kręconego bloku szelek możesz użyć viB
("Wielka Litera B")
Aby selekcje były "inclusive" (wybierz również cudzysłowy, nawiasy lub klamry), możesz użyć a
zamiast i
.
Więcej informacji na temat selekcji obiektu tekstowego można znaleźć w podręczniku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-31 17:25:42
Ta metoda wyboru jest wbudowana i dobrze omówiona w pomocy Vim. Obejmuje znaczniki XML i nie tylko.
Zobacz :help text-objects
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-31 17:33:04
Do wyboru w obrębie pojedynczych cudzysłowów użyj vi'
.
Do wyboru w nawiasie użyj vi(
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-31 17:26:54
Użyj strzałek lub hjkl
, aby przejść do jednego z wyrażeń bracketingu, następnie v
, aby wybrać tryb wizualny( tzn. wybór), a następnie %
, aby przejść do drugiego nawiasu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-31 17:27:39
Zapis funkcji Vim w .vimrc używając wbudowanej funkcji searchpair
:
searchpair({start}, {middle}, {end} [, {flags} [, {skip}
[, {stopline} [, {timeout}]]]])
Search for the match of a nested start-end pair. This can be
used to find the "endif" that matches an "if", while other
if/endif pairs in between are ignored.
[...]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-31 17:33:31
Dodałbym szczegół do najczęściej głosowanej odpowiedzi:
Jeśli używasz gvim i chcesz skopiować do schowka, użyj
"+<command>
Aby skopiować całą zawartość między nawiasami (nawiasami lub nawiasami klamrowymi)
Na przykład: "+yi}
skopiuje do schowka całą zawartość pomiędzy nawiasami klamrowymi, którą znajduje się kursor.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-09 19:48:35
Zrobiłem wtyczkę vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotes
Zapewnia obiekty tekstowe dla najbliższych par cudzysłowów dowolnego typu. Użycie tylko iq
lub aq
pozwala operować na zawartości cudzysłowów pojedynczych ('), podwójnych ( " ) lub tylnych ( ` ), które obecnie otaczają kursor, znajdują się przed kursorem lub za nim (w tej kolejności preferencji). Innymi słowy, skacze do przodu lub do tyłu, gdy jest to potrzebne, aby dotrzeć do cytatów.
To łatwiej zrozumieć patrząc na przykłady (kursor jest pokazany z |
):
- przed:
foo '1, |2, 3' bar
; po naciśnięciudiq
:foo '|' bar
- przed:
foo| '1, 2, 3' bar
; po naciśnięciudiq
:foo '|' bar
- przed:
foo '1, 2, 3' |bar
; po naciśnięciudiq
:foo '|' bar
- przed:
foo '1, |2, 3' bar
; po naciśnięciudaq
:foo | bar
- przed:
foo| '1, 2, 3' bar
; po naciśnięciudaq
:foo | bar
- przed:
foo '1, 2, 3' |bar
; po naciśnięciudaq
:foo | bar
Powyższe przykłady podane są dla pojedynczych cudzysłowów, wtyczka działa dokładnie tak samo dla cudzysłowów double ( " ) I back ( ` ).
Możesz także użyć innych operatorów: ciq
, diq
, yiq
, viq
, itd.
Proszę spojrzeć na stronę github podlinkowaną powyżej, aby uzyskać więcej szczegółów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-09 10:05:13
Prosta mapa klawiatury w vim rozwiązałaby ten problem. Mapa viq F " lvf " hh Powyższe polecenie mapuje viq do klawiszy wyszukiwania pomiędzy cudzysłowami. Zastąp " dowolnym znakiem i utwórz swoje klawisze. Przyklej to do vimrc podczas uruchamiania i powinieneś być w stanie go używać za każdym razem.