W vimscript Mam zdefiniowano zmienną takiego:vim użyciem zawartość zmiennej wewnątrz wyszukiwania i zastąpić wyraz
let b:myvar = 'abc'
Teraz jak mogę wstawić zawartość tego var w poszukiwaniu & wymienić, na przykład:
:s/123/&myvar/
W vimscript Mam zdefiniowano zmienną takiego:vim użyciem zawartość zmiennej wewnątrz wyszukiwania i zastąpić wyraz
let b:myvar = 'abc'
Teraz jak mogę wstawić zawartość tego var w poszukiwaniu & wymienić, na przykład:
:s/123/&myvar/
spróbować tej linii:
:s/123/\=b:myvar/
odpowiedź Kent działa dobrze na t on część zamienną; dla rodzajowego wstawiania podczas wpisywania polecenia interaktywnie zastępczej, można wstawić dowolny wyraz (nie tylko zmienne, a także funkcje, etc.) poprzez <C-R><C-R>=
(te muszą być wpisane jako Ctrl + R, nie dosłownie):
:substitute/<C-R><C-R>=b:myvar<CR>/replacement/<CR>
wewnątrz skryptu, można użyć :execute
:
:execute 'substitute/' . b:myvar . '/replacement/'
To nie działa, jeśli zmienna użyta w miejscu 'b: myvar' zmieni się, z tego, co mogę powiedzieć, na przykład, jeśli jest to zmienna pętli. – hippietrail
@hippietrail: pętla musi znajdować się w pobliżu linii, więc to działa. Jedynym ograniczeniem jest zmienna zamiana, ale musisz użyć wyrażenia, a nie prostej zmiennej i zastosować się do odpowiedzi Kenta. –
OK Jestem bardzo nowy w tym aspekcie Vima i miał pętlę pseudo (globalną ze zmienną inkrementującą) wewnątrz prawdziwej pętli. Ale mam to do pracy. Dziękuję za odpowiedź. – hippietrail
Czy tylko z prośbą o zmiennej w części zastąpić? Lub dla zmiennej w części wyszukiwania lub zamiany? – hippietrail