na przykład załóżmy, że tak
:let foo=pattern
a teraz chcę wykonać, Ggrep patter
ale używam zmiennej foo
zamiast literału patter
.
:echo foo
wyjścia pattern
, ale
:Ggrep foo
po prostu szuka foo
AKTUALIZACJA:
zbudowanie ciągu poleceń, a następnie uruchomienie: wykonanie na nim nie jest rozwiązaniem, to hack. I łamie się z dowolnymi nietrywialnymi wartościami zmiennych.
Ggrep
(litera G?)?Odpowiedzi:
Nie chodzi o zmienną, ale może pomocne może być skrócone polecenie vim. Spróbuj z wiersza poleceń:
Następnie
Uzupełni to „foo” do twojego „wzorca”.
źródło
echo foo
. Opps,echo pattern
który nie jest zmienną. to jest hack i mylące.co powiesz na:
źródło
let xyz = tabpagenr()
wtedytabnext xyz
. Język skryptowy Vima jest tak samo wadliwy, jak jego środowisko modalne jest bezbłędne.Jeśli nie podoba ci się to
:exe
rozwiązanie, możesz „odczytać” zawartość zmiennej do wiersza poleceń za pomocą=
rejestru wyrażeń. Na przykład wpisz,:Ggrep
a następnie naciśnij Ctrl-, ra następnie wpisz=foo
i naciśnij Enter. Zakładając, że zmiennafoo
zawierała „wzorzec”, linia poleceń powinna teraz wyglądać następująco:Ma to tę zaletę, że można zobaczyć rzeczywiste polecenie, które zostanie uruchomione, a nawet zmodyfikować je przed ponownym naciśnięciem Enter.
Widzieć:
źródło