Jak zapewne większość z was wie, można użyć %
do wyszukiwania do przodu w linii, aby znaleźć następny sparowany nawias klamrowy / wspornik / paren i przejść do odpowiedniego partnera:
|a|rray[index] = value;
" |e| is the cursor; hit %:
array[index|]| = value;
Mam nadzieję, że istnieje podobny klucz, który wyszukuje wstecz w wierszu, np .:
array[index] = value|;|
" |;| is the cursor again, hit the key I'm looking for:
array|[|index] = value;
Większość poleceń vima ma zarówno wstecz, jak i do przodu, więc wydaje się, że tak powinno być. Czy to nie ma partnera? Jeśli tak, jest to, że ponieważ raz to na połączonemu charakterze będą działać tak samo?
vim
keyboard-shortcuts
Kevin
źródło
źródło
%
nie tylko szuka sparowanego nawiasu w tym samym wierszu, ale również w dalszej części pliku. Podoba mi się to szczególnie w przypadku pętli itp. W dowolnym języku programowania.g%
polecenie, które wydaje się podobne do tego, czego szukasz.Odpowiedzi:
Jeśli naprawdę chcesz szukać wstecz pasujących znaków, możesz użyć jednego z następujących
vim
poleceń:[(
... (przejdź do poprzedniej niedopasowanej(
postaci)[{
... (przejdź do poprzedniej niedopasowanej{
postaci)Te dwa polecenia mają pasujących partnerów przekazywania:
])
... (przejdź do następnej niedopasowanej)
postaci)]}
... (przejdź do następnej niedopasowanej}
postaci)Istnieją inne podobne polecenia dla
#ifdef
i dla komentarzy C.Możesz znaleźć więcej
vim
za pomocą polecenia:help %
.źródło
%
to idzie w obie strony - znalezienie dopasowanego partnera. Ponadto, jeśli wewnątrz bloku, powyższe polecenia znajdą odpowiednie dopasowanie.% znaleźć pasujący nawias. Więc jeśli jesteś włączony (lub {rozpocznie wyszukiwanie do przodu.
Jeśli jesteś na} lub), przeszuka wstecz.
% nie jest kierunkowe, po prostu znajduje pasujący nawias.
źródło
Właśnie próbowałem
:map ^] ^%%
(z^]
= Ctrl+ v Ctrl+ 5tutaj, jako analogia z%
= Shift+ 5).Działa w określonym przypadku, ale ponieważ nie wyszukuje wstecz od kursora, zawsze wybierze pierwszy otwarty nawias w wierszu i pozostawi kursor na początku wiersza, jeśli nie znajdzie żadnego dopasowania .
To lepsze rozwiązanie; jest brzydka i prawdopodobnie jest dużo miejsca do uproszczenia, ale myślę, że semantyka jest dokładnie poprawna (nie porusza kursorem, jeśli nie ma otwartych paren i przechodzi do pierwszego otwartego paren przed bieżącą kolumną).
dla
^]
= Ctrl+ v Ctrl+5^[
= Ctrl+v Esc^M
= Ctrl+v Returnźródło
[(
działałoby równie dobrze i nie wymagamap
.