Odpowiedzi:
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) lub s).
spowoduje 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:
xi()<Esc>P
Możesz ustawić mapę w trybie wizualnym, używając (na przykład) \s, dodając następujące elementy do ~/.vimrcpliku:
xnoremap <leader>s xi()<Esc>P
Vzamiast v). 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>( ^Rjak CTRL-R)
Opierając się na odpowiedzi dotancohens, umieszczam w moim .vimrc:
xnoremap <leader>( <ESC>`>a)<ESC>`<i(<ESC>
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.