编写一个简单的Vim脚本来编译java代码,并在Vim脚本中找到expand()函数返回奇怪的路径名
我尝试编写一个简单的Vim脚本,用Vim编译java代码编写一个简单的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
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问题,我相信您会得到一些答案:-)祝您好运!