2

在 ec2/ubuntu 上尝试使用 vim 的 dmenu。安装了 Git。

按照这里的步骤:http: //leafo.net/posts/using_dmenu_to_open_quickly.html

知道为什么我在 vim 中遇到此错误吗?

Error detected while processing function DmenuOpen:
line 5:
E172: Only one file name allowed: tabe dmenu: cannot open display
4

2 回答 2

3

主要问题出在您的环境中:cannot open display. Dmenu 需要访问您的 X 服务器才能显示其完成菜单。在您的终端中,您需要定义类似

$ export DISPLAY=:0.0

dmenu您可以通过执行(或xclock,或gvim,或任何其他 X 应用程序)来检查它是否有效。


二、Vim集成中的命令

execute a:cmd . " " . fname

缺少正确的转义;这就是您收到 E172 错误的原因。要处理各种文件名,请使用

execute a:cmd . " " . fnameescape(fname)

最重要的是,一点防御性编程就可以阻止这一切。之后system(),最好检查v:shell_error外部命令是否实际成功。

于 2013-02-26T09:38:53.857 回答
2

出于某种原因,您的函数正在传递多个文件名,或者 Vim 将其理解为多个文件名,:tabe或者:e只能处理一个文件名。

也许文件名中有空格?

代替

execute a:cmd . " " . fname

echo fname

看看传递给什么:tabe

于 2013-02-26T07:41:17.920 回答