Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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脚本来编译java代码,并在Vim脚本中找到expand()函数返回奇怪的路径名_Vim - Fatal编程技术网

编写一个简单的Vim脚本来编译java代码,并在Vim脚本中找到expand()函数返回奇怪的路径名

编写一个简单的Vim脚本来编译java代码,并在Vim脚本中找到expand()函数返回奇怪的路径名,vim,Vim,我尝试编写一个简单的Vim脚本,用Vim编译java代码 function! CompileJava() let path = expand("%") exec ":!javac " . path let className = expand("%:p:r") exec ":!java " . className endfunction 我在运行以下行时出错 exec ":!java " . className 类名是“.home.javacode.te

我尝试编写一个简单的Vim脚本,用Vim编译java代码

function! CompileJava()
    let path = expand("%")
    exec ":!javac " . path 
    let className = expand("%:p:r")
    exec ":!java " . className 
endfunction 
我在运行以下行时出错

exec ":!java " . className
类名是“.home.javacode.test”,而不是“/home/javacode/test”


有人知道为什么className中的所有斜线都被点替换了吗?

嗯,奇怪。。。当您(打开文件)在命令模式下使用以下命令时,是否也会发生这种情况<代码>:echo expand(“%:p:r”)当我的java文件在当前缓冲区中时,我运行:echo expand(“%:p:r”),它返回有效路径/home/javacode/test。(顺便说一句,我在Vim 7.4.729和Mac 10.9.5中)。我也尝试使用shellescape(),例如className=shellescape(expand(“%:p:r”)),但它仍然得到了相同的结果。不幸的是,我没有Java方面的知识,但在阅读终端中的手册时,我找到了通过类调用程序的引用,符号是“点”。所以我认为错误信息是说它应该是点而不是斜线。不管怎样,你在你的终端上是如何做到这一点的?如果您运行
$java/home…
我打赌它会给出相同的错误。是的,我在终端中得到了相同的错误。我想我需要看看Java编译器的命令行选项。感谢您的帮助如果您愿意,请发布一个新问题,一个关于这个(不是vim)的Java问题,我相信您会得到一些答案:-)祝您好运!