这是在脚本内:
:let s:submission_path = expand("%:p:h") . '\submissions\test_submission.csv'
:echo s:submission_path
:write s:submission_path
Run Code Online (Sandbox Code Playgroud)
该脚本引发错误“无法打开文件进行写入”,因为我在 Windows 上并且“:”不是有效的文件名字符。如果我将变量命名为“submission_path”,则会写入具有该名称的文件(编辑:文件的内容如我所料,即脚本正在编辑的缓冲区的内容)。
我不明白这一点。写入之前的 echo 命令执行我期望的操作,输出我要写入的文件的完整路径。但 write 似乎忽略了变量值并使用它的名称?我需要以某种方式取消引用它吗?
尝试这个:
:let s:submission_path = expand("%:p:h") . '\submissions\test_submission.csv'
:echo s:submission_path
:execute "write " . s:submission_path
Run Code Online (Sandbox Code Playgroud)
执行将允许您使用字符串操作编写 ex 命令,然后执行它。