2013-07-31 14 views
10

Bardzo podoba mi się zachowanie YankRing, które pozwala mi uzyskać dostęp do ostatnich kilku rzeczy, które mam y anked lub d wyrzucony lub c powieszony bez zastanowienia.Vim Repeat dot (".") Bufor poleceń?

W przypadku powtarzania polecenia . brakuje całkowicie funkcji uzupełniającej, najczęściej gdy wpisuję coś, co naprawdę chcę powtórzyć, a następnie przypadkowo zastąpię tę zmianę, naciskając x, aby wyczyścić coś.

Często możliwe jest odzyskanie czasu w trybie wizualnym, szarpiąc to, co właśnie napisałem, ale to nie jest idealne.

Powinno być naprawdę łatwo zapamiętać kilka ostatnich poleceń.

Pytanie, w jaki sposób możliwe jest wyodrębnienie z Vima reprezentacji ostatniego polecenia zawartego w sklepach, co zrobi ., zanim zostanie zdmuchnięte?

Jeśli tak się obawiam, jedynym sposobem jest pobranie wtyczki do powiązania z każdą komendą, która może coś edytować, i instrumentowanie jej w taki sposób, aby przechowywać nasz własny bufor powtórzeniowy. To naprawdę nie jest praktyczne, ponieważ mogę już wyobrazić sobie, ile innych wtyczek się zepsuje. Ale nadal chciałbym naprawdę tę funkcję, jeśli jest to możliwe w jakikolwiek sposób.

+0

Powiązane pytanie [Bardziej wydajna wersja kropki (powtórzenie)] (http://stackoverflow.com/q/16722566). – glts

+0

@glts Napisałem, że ... jest podobny, ale wymaga przygotowania przez rozpoczęcie nagrywania –

+0

Po prostu naucz się korzystać z [rejestrów] (http://stackoverflow.com/questions/1497958/how-to-use-vim-registers? rq = 1) i inne wbudowane funkcje imo. Tyle wtyczek, które "naprawiają" rzeczy, które nie muszą być naprawiane. Operator kropki działa doskonale z rejestrami. Na przykład, możesz "qp" wkleić rejestr 'q' i powtórzyć za pomocą' .', ale wszelkie zmiany, takie jak 'x', nie zmienią tego, co zapisałeś w rejestrach innych niż domyślne Kolejny świetny wpis do przeczytaj [tutaj] (http://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim?rq=1) –

Odpowiedz

1

Uzupełnianie słów kluczowych i/lub ctrl-a w trybie wstawiania powinno zaspokajać Twoje potrzeby.

Bardziej podobne rozwiązanie typu "jankring" powinno być możliwe, ale, jak pan mówi, prawdopodobnie nieco zbyt nachalne. Czy patrzyłeś na vim.org sam, zanim poprosiłeś innych, aby zrobili to za Ciebie?

+0

Tak, chodzi mi o to, że nie ma nawet sposobu, który Vim zapewnia, aby dowiedzieć się, co zrobi '.'. Naprawdę miałem nadzieję, że ktoś ma łatkę źródłową, żeby ją wydać komendą. –

+0

. powtarza ostatnią zmianę. To naprawdę proste. Polecenie dot nie jest tak naprawdę zaprojektowane do wykonywania serii poleceń od dawna, więc praktycznie nigdy nie musisz zgadywać, co zamierza zrobić. Jeśli chcesz więcej długoterminowych rozwiązań, użyj makr i mapowań. – romainl

2

Niestety, nie ma sposobu na uzyskanie i odtworzenie polecenia za poleceniem .. Jedynym sposobem obejścia tego problemu jest nieprzerwane działanie w trybie rejestracji i użycie rejestru makr jako zamiennika polecenia ..

Ta taktyka jest używana przez RepeatLast plugin, która może zaoferować to, co chcesz.