2011-11-30 11 views
10

Jestem okropny w pisaniu vim wyrażeń regularnych. Ilekroć piszę jeden, aby zrobić substytut, nigdy nie działa po raz pierwszy, ponieważ nieuchronnie kończy się pisanie czegoś Perla zamiast vim. O wiele lepiej radzę sobie podczas prostego wyszukiwania, ponieważ mam włączoną incsearch i widzę w czasie rzeczywistym, czy mój wzór pasuje.Vim przyrostowe wyszukiwanie podczas zastępowania

Czy istnieje sposób, że mogę mieć polecenie s działać jak/(wykonuje wyszukiwanie przyrostowe), podczas gdy ja próbuję napisać odpowiedni wzór?

Odpowiedz

18

Nie jestem pewien, ale myślę, że nie ma sposobu, aby to zrobić. Przy okazji, używam małego triku, by przyspieszyć moje zastępstwa. Jeśli zrobisz coś takiego:

:%s//bar 

w linii poleceń Vim użyje twojego ostatniego wyszukiwania. Tak więc, nie jest to dokładnie to, czego potrzebujesz, ale wciąż jest sposobem na zwiększenie prędkości dokonywania zmian.

+1

To dobra wskazówka. Możesz po prostu najpierw wpisać swoje wyszukiwanie, a następnie uruchomić ten skrót – Matt

+1

+1, dobry vimtip :) –

+1

Wow, ta wskazówka prawdopodobnie zaoszczędzi mi wiele godzin w trakcie mojej kariery. Dzięki! – notlesh

3

Można spróbować ten mały trick, aby skomponować swój wzorzec wyszukiwania używając incsearch i skopiuj wzór na zmianę w linii komend:

  1. Compose wzorca w trybie normalnym/... można zobaczyć wzory są dopasowane . Ostatni wzór zostanie zapisany w pliku @/register.

  2. Przejdź do wiersza polecenia trybu i wejść w ten częściowy wiersz: :%s/

  3. Teraz za pomocą tych przycisków: <c-r>[email protected]/ to skopiuje ostatniego wyszukiwania wzorca w komendzie zmiennika piszesz. (<c-r> naciska klawisz control-r, nie wpisując znaków.)

Powiązane problemy