如何在Vimscript中打开fnamemodify()给定的文件路径

如何在Vimscript中打开fnamemodify()给定的文件路径,vim,Vim,我试图创建一个函数来打开一个指定的项目。以下是我所拥有的: function ProjectEuler () let problem = input('Enter problem number: ') cd /Users/me/Documents/Computer_Stuff/Code/Project_Euler e fnamemodify('problem'.problem.'.py', ':p') endfunction fnamemodify()为我输入的任何问

我试图创建一个函数来打开一个指定的项目。以下是我所拥有的:

function ProjectEuler ()
    let problem = input('Enter problem number: ')
    cd /Users/me/Documents/Computer_Stuff/Code/Project_Euler
    e fnamemodify('problem'.problem.'.py', ':p') 
endfunction
fnamemodify()为我输入的任何问题提供了正确的文件路径,因此我的想法是,
e
会在该文件路径打开文件,但它会打开
/Users/me/Documents/Computer\u Stuff/code/Project\Euler/fnamemodify('problem'.problem'.py',':p')


有人知道我做错了什么吗

必须使用
:执行
才能在映射或命令中使用变量或表达式

execute "edit " . fnamemodify('foo.txt', ':p')

谢谢现在一切正常。在这种情况下,
e
echo
之间有什么区别?鉴于后者可以正常工作。
e
edit
的缩写(您应该使用长格式,顺便说一句),它接受文件名作为参数,但不接受表达式
echo
没有那么挑剔。稍微简单一点:
execute“edit”fnamemodify('foo.txt',':p')
@romainl,“oooooooh”是指你对我关于
:execute
的详细知识印象深刻,还是你认为我搞错了?我印象深刻。我从没想过要这么做。谢谢