Jeśli mam ten tekst w vimie, a mój kursor znajduje się na pierwszym znaku:
www.foo.com
Wiem, że mogę zrobić:
cw
zmienić do pierwszego okresu, ponieważword
(małe litery w) kończą się dowolną interpunkcją LUB białą spacjącW
aby zmienić cały adres, ponieważWord
(wielkie litery w) kończą się tylko białymi znakami
Co jeśli mam to:
stupid_method_name
i chcesz to zmienić?
awesome_method_name
Zarówno cw
i cW
zmienić całą rzecz, ale po prostu chce zmienić fragment przed podkreślenia.
Moja technika rezerwowa polega na c/_
„zmianie, dopóki nie trafisz następnego podkreślenia w wyszukiwaniu”, ale dla mnie powoduje to również, że wszystkie podkreślenia są wyróżniane jako wyszukiwane hasła, co jest nieco denerwujące.
Czy istnieje specifier jak w
lub W
że nie zawiera podkreślenia?
:nohl
?Odpowiedzi:
Można to zrobić
cf_
. f nie podświetli szukanego znaku.Możesz także zrobić,
ct_
jeśli nie chcesz dołączać _.źródło
f
przesuwa się do przodu do postaci;F
przesuwa się do tyłu do postaci;t
przesuwa się do przodu tuż przed postacią; iT
przesuwa się do tyłu na postać po prawej stronie postaci docelowej. Tak powinien być twój drugi przykładct_
.ct_
jest dokładnie tym, czego chciałem. To stało się teraz częścią mojego regularnego przepływu pracy. Dzięki!Umieść to w swoim .vimrc:
set iskeyword-=_
Wówczas _ będzie traktowane jako granica słów (choć nie granica WORD), a cw może być użyte do zmiany „niesamowitej”, a cW do zmiany całej rzeczy.
Widzieć:
:help iskeyword
i
:help word
po więcej informacji.
źródło
ct_
co mówi podwójna strona poniżej, ponieważ jest zwięzłe i jest domyślnym zachowaniem vim.camelcasemotion to całkiem przydatna wtyczka vim, która pozwala poruszać się po słowach podczas korzystania z podkreślenia lub notacji camelcase. Za pomocą tej wtyczki możesz umieścić przecinek przed wieloma tradycyjnymi poleceniami ruchu vim, co pozwoli ci traktować słowa w notacji podkreślenia lub notacji wielbłąda jako pełne słowa.
źródło