Jestem pewien, że kiedyś była taka wtyczka, ale teraz, gdy jej potrzebuję, nie mogę jej (naturalnie) znaleźć, więc po prostu zapytam ładnie i prosto.
Jaki jest najłatwiejszy sposób wyboru mię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:
.
Nie interesuje mnie multiline, tylko przypadki, które występują na jednej linii.
yi"
zaznacz wszystkie z cudzysłowamici(
lubci)
robi to, czego szukałem. Dzięki. Nadal nie rozumiemi
w pełni tego przypadku, ale kogo to obchodzi, dopóki to działa, prawda? :)Aby wybrać pomiędzy pojedynczymi cudzysłowami, zwykle robię
vi'
(„wybierz wewnętrzne pojedyncze cudzysłowy”).W bloku nawiasów używam
vib
(„wybierz blok wewnętrzny”)Wewnątrz klamry nawiasów klamrowych możesz użyć
viB
(„wielka B”)Aby dokonać wyboru „włącznie” (wybierz także cudzysłowy, nawiasy lub nawiasy klamrowe), możesz użyć
a
zamiasti
.Możesz przeczytać więcej na temat wyboru obiektów Text w podręczniku lub
:help text-objects
w vimie.źródło
Ta metoda selekcji jest wbudowana i dobrze opisana w pomocy Vima. Obejmuje tagi XML i więcej.
Zobaczyć
:help text-objects
.źródło
Do wyboru w ramach pojedynczych cytatów użyj
vi'
.Do wyboru w nawiasach użyj
vi(
.źródło
ci'
lubci(
do zmiany zamiast wizualnego wyboru. Ale robi dokładnie to, czego chciałem. Dzięki :)%vi(
lub%vib
Użyj strzałek lub,
hjkl
aby przejść do jednego z wyrażeń braketingowych, a następniev
wybierz tryb wizualny (tzn. Wybierając), a następnie%
przejdź do drugiego nawiasu.źródło
Napisz funkcję Vima w .vimrc za pomocą
searchpair
wbudowanej funkcji:( http://vimdoc.sourceforge.net/htmldoc/eval.html )
źródło
Chciałbym dodać 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 (lub parens lub nawiasami klamrowymi)
Na przykład:
"+yi}
skopiuje do schowka całą zawartość między nawiasami klamrowymi, na których znajduje się kursor.źródło
y
.Zrobiłem wtyczkę
vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotesZapewnia obiekty tekstowe dla najbliższych par cytatów dowolnego typu. Używanie tylko
iq
lubaq
pozwala operować na treści pojedynczych ('), podwójnych (") lub tylnych (`) cytatów, które aktualnie otaczają kursor, znajdują się przed kursorem lub z tyłu (w tej kolejności preferencji) Innymi słowy, przeskakuje do przodu lub do tyłu, gdy jest to konieczne, aby dotrzeć do cytatów.Łatwiej to zrozumieć, patrząc na przykłady (kursor jest pokazany za pomocą
|
):foo '1, |2, 3' bar
:; po naciśnięciudiq
:foo '|' bar
foo| '1, 2, 3' bar
:; po naciśnięciudiq
:foo '|' bar
foo '1, 2, 3' |bar
:; po naciśnięciudiq
:foo '|' bar
foo '1, |2, 3' bar
:; po naciśnięciudaq
:foo | bar
foo| '1, 2, 3' bar
:; po naciśnięciudaq
:foo | bar
foo '1, 2, 3' |bar
:; po naciśnięciudaq
:foo | bar
Powyższe przykłady podano dla pojedynczych cudzysłowów, wtyczka działa dokładnie w ten sam sposób dla cudzysłowów podwójnych (") i wstecz (`).
Można również używać innych operatorów:
ciq
,diq
,yiq
,viq
, itdWięcej informacji znajdziesz na stronie github, do której prowadzi link.
źródło
Prosta mapa klawiszy w vimie rozwiązałaby ten problem. map viq F ”lvf” hh Powyższe polecenie mapuje viq na klawisze, aby przeszukiwać cudzysłowy. Zamień „na dowolną postać i utwórz mapy klawiszy. Wstaw to w vimrc podczas uruchamiania i powinieneś być w stanie używać go za każdym razem.
źródło