2013-08-13 6 views
6

Ich habe eine einfache Funktion geschrieben bearbeiten Befehl mit einem von dem angegebenen Dateinamen gefolgt Pfad aufzurufen.VimScript: pass Wert der lokalen Variablen Befehl bearbeiten

Es sieht jedoch so aus, als ob edit l:path für die Datei mit dem Namen "l:path" anstelle von l:path Variablenwert bearbeitet wird. Ich denke, das ist ein triviales Problem, aber es ist schwierig, Suchergebnisse für das Aufrufen des Bearbeitungsbefehls in der Funktion zu erhalten, nicht vom vim-Editor.

Die folgenden Code zeigen den richtigen Wert von l: Pfad, wenn ich edit zu echon ändern.

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

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

Antwort

13

Sie haben :execute verwenden Variablen Befehle weitergeben müssen:

execute 'edit' l:path

einige gute Beispiele in :help :execute Es gibt keine.

+0

Funktioniert perfekt! Danke für die schnelle Antwort! –