Różne ruchy:%
%
Polecenie przeskakuje do meczu elementu pod kursorem. Ustaw kursor na otwierającym (lub zamykającym) okienku i używaj go y%
do szarpania lub d%
usuwania wszystkiego, od kursora do pasującego paska.
Działa, ponieważ %
jest "poleceniem ruchu", więc może być użyte wszędzie tam, gdzie vim oczekuje takiej komendy. Od :help y
:
["x]y{motion} Yank {motion} text [into register x]. When no
characters are to be yanked (e.g., "y0" in column 1),
this is an error when 'cpoptions' includes the 'E'
flag.
Domyślnie „pozycja” zawiera nawiasy, nawiasy klamrowe, pareny, komentarze w stylu C i różne instrukcje prekompilatora ( #ifdef
itd.).
Jest wtyczka do "rozszerzonego% dopasowania", którą możesz znaleźć na stronie domowej Vima .
Możesz przeczytać dokumentację %
i powiązane polecenia ruchu, wchodząc :help various-motions
w tryb poleceń.
wybór obiektu
Istnieje inny zestaw poleceń ruchu, których można używać w trybie wizualnym do wybierania różnych obiektów tekstowych.
Aby rozwiązać konkretny problem, wykonaj następujące czynności:
printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
^
Powiedzmy, że kursor jest ustawiony na ^
. Wprowadź następującą sekwencję, aby wybrać część, której szukasz:
v2a)
Najpierw v
wchodzi w tryb wizualny, a następnie określasz, że chcesz 2
zwiększyć poziomy parametrów. Na koniec a)
wybiera „blok”. Następnie możesz użyć d
lub x
usunąć itp.
Jeśli nie chcesz dołączać zewnętrznych par, możesz zamiast tego użyć „wewnętrznego bloku”:
v2i)
Zobacz :help object-select
pełną listę powiązanych poleceń.
a
, że chodziło o „wokół” zamiast „a”. Poczuj się, jakby lepiej uzupełniał „wewnętrzny”. Wydaje się, że nie ma dnia, żeby nie dowiedzieć się czegoś nowego o Vimie.A co z
dib
lubdi(
.Spowoduje to usunięcie wewnętrznego (...) bloku, w którym znajduje się kursor.
Uwielbiam ruchy obiektów tekstowych i zaznaczenia!
źródło
dab
=> Usuń z bloku (w tym jego nawiasach)Aby usunąć wszystko, co znajduje się w nawiasach, zawsze możesz wydać
di(
i jego pochodne.Uwaga :
Jak zasugerował @porglezomb w swoim komentarzu, możesz użyć
a
(„wraz z”) zamiasti
(„wewnątrz”), aby uwzględnić nawiasy. Tak więc, stosującda(
Usuwa wszystko wewnątrz(
i)
tym(
i)
.Usuwanie tekstu w bezpośredniej zewnętrznej parze nawiasów:
Tak więc dla tej linii kodu
zakładając, że kursor znajduje się w wyżej wymienionym zakresie kursora, możesz wydać następujące polecenia:
Usuwanie tekstu wewnątrz n-tej zewnętrznej pary nawiasów:
Aby pobrać wszystko z n-tej zewnętrznej pary nawiasów, po prostu dodaj
n
przed powyższym poleceniem. Tak więc przy tej samej pozycji kursora co powyżejźródło
a
jako odpowiedniki
, ponieważ może to pomóc wielu ludziom.%
ten problem, ale zajmuje to więcej czasu i moim zdaniem powinno być używane tylko w bardziej złożonych scenariuszach. Usunięcie czegoś w określonym zakresie jest dokładnie tym, do czego służydi
.Możesz użyć
d%
do usuwania iy%
szarpania.źródło
Umieść kursor w pierwszym nawiasie, a następnie naciśnij
v%y
lubv%d
.źródło
Wypróbuj ci [block-surrounder]
W twoim przypadku umieść kursor w dowolnym miejscu między dwoma nawiasami, które zaznaczyłeś i wypróbuj klawisze: ci (
źródło
Jako odpowiedź David Norman mówi:
Umieść kursor w pierwszym nawiasie, a następnie naciśnij
v%y
lubv%d
.Wyjaśnienie z http://vimdoc.sourceforge.net/htmldoc/vimindex.html :
Oznacza to, że wybierze wszystko pomiędzy i łącznie z dwoma nawiasami kwadratowymi (
%
), pokazując Ci zaznaczenie wizualnie (v
), a następnie szarpnij / skopiujy
lub usunie / wytnijd
. (Do domyślnego bufora.)Możesz umieścić / wkleić za pomocą
p
.Podałem tę odpowiedź, aby „nauczyć się łowić” .
źródło