2012-09-26 9 views
15

Jestem pewna, że ​​będę ośmieszany z powodu zadawania duplikatu; ktoś musiał już zadać to pytanie! Ale w ciągu godziny poszukiwań go nie znalazłem. Muszę szukać niewłaściwej rzeczy.Vim: usuń do następnej postaci, gdy następna postać nie jest w tej samej linii

W Vi (lub Vim) Jestem w stanie usunąć wszystkie znaki do postaci poprzez sekwencję klawiszy dt} (lub df}, jeśli chcę również usunąć nawias).

Działa to jednak tylko wtedy, gdy znak } znajduje się w bieżącej linii. Co chcę zrobić, to usunąć wszystko do następnego }, nawet jeśli jest to pierwsze wystąpienie w kolejnej linii.

Mam na myśli coś w rodzaju d/} (gdzie ukośnik /}<enter> w dowolnym innym kontekście, zabrał mnie do następnego wystąpienia }). Z oczywistych powodów, to nie działa, ale mam nadzieję, że zamiar jest jasny.

== EDIT ==

Okay okay okay ... przepraszam. Wszystko w porządku, działa (na mojej maszynie instalującej czystą instalację). może być jakimś popsutym mapowaniem w pliku konfiguracyjnym, ale nie działa na moim drugim.

Hang głowy ze wstydu

+2

Czy próbowałeś tego? Ponieważ działa dobrze dla mnie. – parsifal

+0

Oczywiście, że próbowałem! A co działa dobrze dla ciebie? – cartbeforehorse

+1

Jakie są "oczywiste powody", które spowodowałyby awarię? Jakie jest zachowanie twojego vima? – Scharron

Odpowiedz

15

d/}<cr> robót. To jest kanoniczny sposób usuwania do następnego }, który nie jest w tej samej linii. Nawiasem mówiąc, d?{<cr> robi to samo, ale w przeciwnym kierunku.

1

Jeśli postać jest } lub { umieszczony na początku linii, jednym ze sposobów może być używana obiekt tekstowy ruchy, tak jak d]] polecenie może być przydatne.

3

To powinno zapisać kilka naciśnięć klawiszy. Rozszerza funkcjonalność fFtT; więc działają na liniach.

Powiązane problemy