Czy w Vimie jest funkcja pozwalająca na dodawanie nawiasów wokół podświetlonego tekstu?
Na przykład, jeśli podkreślają n = getchar()
w if (n = getchar() == '\n')
, chciałbym umieścić nawiasów wokół tego.
Potrzebujesz niesamowitej i obowiązkowej wtyczki surround . Następnie z radością zrobi to, co chcesz, jeśli zaznaczysz tekst i napiszesz Sb
(nawiasy klamrowe) lub S)
(zwróć uwagę na duże S!).
W rzeczywistości potrafi dużo otaczać: różne cudzysłowy, tagi itp. Pozwala umieścić kursor w słowie z podwójnym cudzysłowem i zmienić podwójne cudzysłowy na pojedyncze cudzysłowy, wpisując: cs"'
(zmień otaczanie "
na '
). Lub możesz całkowicie usunąć cytaty, wpisując ds"
(delete-surround "
).
Przeczytaj dokumentację przez link, to naprawdę niesamowite!
sb
(nawiasy klamrowe) lubs)
.s
powoduje jedynie usunięcie zaznaczenia i przejście do trybu wstawiania.Oprócz sugestii Dmitry'ego dotyczącej wtyczki surround , dodawanie nawiasów wokół podświetlonego tekstu można wykonać za pomocą następującego polecenia:
Możesz ustawić mapę w trybie wizualnym, używając (na przykład)
\s
, dodając następujące elementy do~/.vimrc
pliku:źródło
V
zamiastv
). W tym przypadku po prostu wkleja linie poniżej twoich parens.Lewe nawiasy po prostu wiążą się,
(
aby otoczyć zaznaczenie nawiasami. W przeciwieństwie do surround , nie jest zgodny z typową dla Vima filozofią kluczowania. Zamiast tego wymaganych jest mniej kluczy.W przeciwnym razie istnieje wiele sposobów postępowania. Jeśli nie masz nic przeciwko zepsuciu nienazwanego rejestru, możesz również użyć
s(^R")<esc>
(^R
jakCTRL-R
)źródło
Opierając się na odpowiedzi dotancohens, umieszczam w moim
.vimrc
:Możesz łatwo tworzyć podobne odwzorowania dla [], {} itd. Działa to poprzez przeskakiwanie do początkowych i końcowych znaczników domyślnie ustawionych po zakończeniu trybu wizualnego. W ten sposób zaznaczenie całych linii doda pareny na początku / końcu pierwszej / ostatniej linii; nie zastąpi twojego rejestru szarpnięć; i opuści kursor tuż przed otwierającym paren.
źródło