2016-04-25 8 views
6

Na przykład, w następujących przypadkach:W Vim, jak mogę usunąć wszystko między cytatami, w tym cytatami?

Testing "deleting" within quotes 

Z kursorem wewnątrz usuwania, w jaki sposób można usunąć tekst w cudzysłowie i zawierać cytaty, pozostawiając:

Testing within quotes 
+0

Ściśle związane z http://stackoverflow.com/questions/36843099/in-vim-how-can-i-delete-everything-between-quotes-how-the-quotes – SibiCoder

Odpowiedz

10

można użyć następująca sekwencja:

da"

Należy pamiętać, że działa tylko na jednej linii, a REMOV e wszelkie spacje końcowe po ostatnim cytacie.

+5

Wiedziałem, że SO pozwala aby odpowiedzieć na pytanie Q. Jednak to, o co prosiłeś, jest naprawdę rzeczą z RTFM ... być może zrozumienie tekstu-obiektów powinno być pierwszą rzeczą do zrobienia dla nowego użytkownika vima. Odnosząc się do 'da" ', możesz zrobić' da "" nie tylko w cudzysłowie można to zrobić poza cudzysłowami, np. na początku linii, aby usunąć pierwsze "" ..."' – Kent

+2

Wystarczająco uczciwe, chociaż dodałem to, ponieważ wydaje się, że jest to częste pytanie dla początkujących i nie zostało ono jeszcze zadane lub udzielono odpowiedzi (chociaż podobne pytania były) Zazwyczaj łatwiej jest wykonać szybkie wyszukiwanie niż przejść przez instrukcję dla początkujących (którzy mogą nie wiedzieć o "pomocy" Vima). Zapraszam do edycji odpowiedzi z twoimi sugestiami, jeśli uważasz, że byłoby to pomocne – Casey

+1

Vim ': help' jest pomocny tylko wtedy, gdy już wiesz, czego szukasz dla. Jest użyteczne, aby te operacje zostały udokumentowane gdzieś, gdzie łatwo je znaleźć –

3

Jak zauważył Kent, lepiej zacząć od obiektów tekstowych. Pisanie jako odpowiedź na kompletność. Fragment :h text-objects, poniżej, wskazują dwie formy i i a

jest to szereg poleceń, które mogą być stosowane tylko w trybie wizualne lub po operatora. Polecenia rozpoczynające się od "a" wybierz "a" n obiekt zawierający białe spacje, polecenia zaczynające się od "i" wybierają "wewnętrzny" obiekt bez białych znaków lub tylko z białą spacją. Zatem polecenia "wewnętrzne" zawsze wybierają mniej tekstu niż polecenia "a".

obiekty tekstowe są przydatne do drugiej pary znaków jak (), {}, etc. Na przykład, jest to przydatne przy zmianie

if (i == true) { 
} 

do

if (_) { 
} 

za pomocą ci( lub ci).

W każdym razie, możemy użyć, jak zrobiłeś słusznie, w Twoim przypadku jako

da" 

lub di" usunąć tylko zawartość wewnątrz z”.

0

Trzymaj kursor w pierwszych cytatów i naciśnij d , a następnie wpisz/"/ e Powinien usunąć treść między podwójnymi cudzysłowami, jak również cytatami. Dotyczy to również linii wielorakich.

Innym sposobem: Trzymaj kursor w pierwszych cytatów i typu DF” Będzie również usunąć tekst wewnątrz cudzysłowów i cytuje zbyt Nie dotyczy wielu linii

W obu tych sposobów, możesz wykonać polecenia!. w trybie normalnym:

+0

Te metody nie działają, gdy między nimi występują inne cudzysłowy cytaty. – SibiCoder

Powiązane problemy