2013-08-13 18 views
6

Napisałem prostą funkcję wywołania polecenia edit ze ścieżką, po której następuje nazwa pliku.VimScript: przekazanie wartości zmiennej lokalnej do edycji komendy

Jednak wygląda na to, że edit l:path wywołuje edycję pliku o nazwie "l:path" zamiast wartości zmiennej l:path. Domyślam się, że jest to trywialny problem, ale trudno jest uzyskać wyniki wyszukiwania dla wywoływania polecenia edycji w funkcji, a nie z edytora vim.

Poniższy kod przedstawia prawidłową wartość l: ścieżka po zmianie edit na echon.

command! -nargs=1 E call EditAtCurrentPath(<f-args>) 

function! EditAtCurrentPath(filename) 
    let l:path=expand('%:p:h').'/'.a:filename 
    edit l:path 
endfunction 

Odpowiedz

13

Musisz użyć :execute przekazać zmienne do poleceń:

execute 'edit' l:path

Istnieje kilka dobrych przykładów w :help :execute.

+0

Działa idealnie! Dzięki za szybką odpowiedź! –

Powiązane problemy