Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vim脚本:如何使变量成为主机命令_Vim - Fatal编程技术网

vim脚本:如何使变量成为主机命令

vim脚本:如何使变量成为主机命令,vim,Vim,我有以下代码将我正在编辑的文件复制到另一个文件夹,但当按F5执行命令时,它会尝试执行命令“copy path newpath”,而不会用变量的值替换变量。解决办法是什么 function! Cpf() let path = expand('%:p') echo path echo "123" let newpath = substitute(path,'test1','test2','g') echo "copy " path newpath :!copy path newpath endfu

我有以下代码将我正在编辑的文件复制到另一个文件夹,但当按F5执行命令时,它会尝试执行命令
“copy path newpath”
,而不会用变量的值替换变量。解决办法是什么

function! Cpf()

let path = expand('%:p')
echo path
echo "123"
let newpath = substitute(path,'test1','test2','g')
echo "copy " path newpath
:!copy path newpath
endfunction

:map <F5> :call Cpf()<CR>
函数!中央公积金()
让路径=展开('%:p')
回波路径
回声“123”
让newpath=substitute(路径,'test1','test2','g')
回显“复制”路径newpath
:!复制路径新路径
端功能
:映射:调用Cpf()

尝试更改行:

:!copy path newpath
进入

还是这个

exec '!copy ' . path . ' ' . newpath

请注意,如果您使用了
copy
,这意味着它不能适用于几乎所有*nix系统。如果希望操作系统检查可移植,则可能需要添加操作系统检查

谢谢你,肯特,这很有效。但是你能给我指一些医生吗?.path.“.”的含义是什么。newpath,点连接字符串吗?点连接字符串以生成外部命令。如需帮助,
:h系统(
:h:exec
@DanielWu
exec '!copy ' . path . ' ' . newpath