在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
答案 0 :(得分: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
外部命令是否实际成功。
答案 1 :(得分:2)
出于某种原因,您的功能是将多个文件名或Vim理解为多个文件名的内容传递给:tabe
或:e
,这些文件名只能处理一个文件名。
也许名字中有空格的文件?
替换
execute a:cmd . " " . fname
与
echo fname
查看传递给:tabe
的内容。