2013-08-13 9 views
6

Ho scritto una semplice funzione per invocare il comando di modifica con un percorso seguito dal nome file specificato.VimScript: valore di passaggio della variabile locale per modificare il comando

Tuttavia sembra che edit l:path invochi la modifica per il file denominato "l:path" anziché il valore di variabile l:path. Immagino che questo sia un problema banale, ma è difficile ottenere risultati di ricerca per chiamare il comando di modifica in funzione, non dall'editor di Vim.

Il codice seguente mostra il valore corretto di l: percorso quando cambio edit in echon.

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

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

risposta

13

bisogna usare :execute per passare variabili ai comandi:

execute 'edit' l:path

Ci sono alcuni buoni esempi in :help :execute.

+0

Funziona perfettamente! Grazie per la risposta rapida! –

Problemi correlati