2013-04-24 11 views
5

Załóżmy, że mamy jakieś ładne kilka tekstów:Jak filtrować wybór wizualny?

Hello world 

i wybierz world w trybie wizualnym. Wtedy możemy filtrować wybór wizualnych przy użyciu polecenia lśniący jak ten:

:'<,'>!echo foobar 

jednak, że byłoby wymienić całą linię z foobar zamiast tylko world. Dlaczego tak jest i jak możemy po prostu wymienić world?

+0

zasięg jest liniowy – Kent

+2

zobacz ": help visual_example' –

+0

@evilotto miła sztuczka, nie znalazłem jej wcześniej .. – Kent

Odpowiedz

6

Komenda :! filtr zawsze działa na całych linii (jest to stara jak oryginalnego vi, osadzanie Wj poleceń że początek :), a także określa zakres '<,'> tylko linie.

Możesz użyć czcigodnego vis plugin, aby osiągnąć swój wynik; oferuje polecenie :B, które ogranicza następujące polecenie do tekstu zaznaczonego wizualnie.

:'<,'>B !echo foobar 

Wtyczka działa dla wszystkich rodzajów poleceń Ex; dla :substitute w ramach wyboru można również użyć specjalnego atomu \%V.

+0

Dzięki za odpowiedź! Chcę go użyć wewnątrz wtyczki. Czy to oznacza, że ​​każdy użytkownik powinien zainstalować wtyczkę vis przy sobie, czy jest lepszy sposób na to? –

+0

Jeśli nie możesz ograniczyć użycia do prostego podzbioru, który możesz łatwo zaimplementować w Vimscript, poleciłbym przekazać to do wtyczki vis. Po co wymyślać koło ?! –