2010-12-28 12 views
13

Bardzo przydatna przy wymianie vima jest zmiana całego wyrazu na. Rozdzielanie poleceń ruchu i czasowników akcji przez Vima tworzy bardzo potężne kombinacje. Właśnie musiałem zmienić DefaultHandler na ContentHandler. Naturalnie uważałem, że jest to "zmiana na następną wielką literę", ale nie mogłem znaleźć polecenia ruchu, które przeniosło się z jednej dużej litery na drugą.Zmiana części słów CamelCase w vim

W tym przypadku mogłem użyć ctH, ale czy istnieje sposób na zmianę (lub usunięcie itp.) Pierwszej części słowa CamelCase, bez względu na to, która litera jest następna?

+0

możliwe duplikat [W jaki sposób można skonfigurować vim tak, że polecenia ruchowe obejmie podkreślenia i CamelCase , ale zakończenie je zignoruje?] (http://stackoverflow.com/questions/1279462/how-can-i-configure-vim-so-that-movement-commands- willill- include-underscores-and-c) (jak wspomniano w odpowiedzi Luca, co moim zdaniem powinno być komentarzem). – yshavit

Odpowiedz

2

Vim domyślnie nie dostarcza obiektu tekstowego CamelCase, więc będziemy musieli stworzyć go samodzielnie, aby uzyskać . Dobrą Nowością jest to, że nie trzeba wyważać otwartych drzwi od plugin już istnieje i możemy użyć go jako bazę: camelCaseMotion

Skrypt ten określa ruchy ,w, ,b i ,e (podobny do w, b, e), które nie poruszają się w mowie (w przód/w tył), ale w wielbłądach; tj. do granic wyrazów i wielkich liter. Problem polega na tym, że nie definiuje obiektu tekstowego podobnego do iw, aby wybrać całe słowo. Stwórzmy więc: it: Aby być kompletnym, obiekt tekstowy potrzebuje dwóch definicji: jednej dla trybu wizualnego i innej dla trybu oczekiwania operatora. Oto nasze definicje (dodać do .vimrc):

vmap ,i <Esc>l,bv,e 
omap ,i :normal v,i<CR> 

Jak widać robimy wykorzystanie ,b i ,e wnioskami określonymi przez wtyczkę.

Pierwsza definicja pozwala na wpisanie ,i, gdy jesteśmy w trybie wizualnym i będzie wybrać bieżące "wewnętrzne słowo camelCase". (The l ruch jest obejście zawsze słowo znajduje się kursor. W przeciwnym razie możemy uzyskać poprzednią gdy kursor znajduje się na pierwszej literze słowa)

Druga definicja używa pierwszego jeden do niech operatorzy jak d lub c pracy z ,i

Po zainstalowaniu wtyczki i dodał definicji do naszego .vimrc możemy robić to, co chciałeś.Na przykład, jeśli wziąć ten przykład:

DefaultHandlerWord 

Jeśli mój kursor znajduje się na literę n z Handler mogę użyć:

  • ,e aby przejść do ostatniego listu z Handler
  • ,b iść do pierwszej litery z Handler
  • ,w, aby przejść do pierwszej litery z Word
  • d,i usunąć Handler i dostać tylko DefaultWord
  • c,i usunąć Hanlder i dostać szansę, aby zastąpić go innym słowem
+0

Również na pytania dotyczące Vima mogą być zainteresowane [dedykowana strona wymiany stosów] (http://vi.stackexchange.com/). – statox

Powiązane problemy