如何让MinTTY(Cygwin终端)在新窗口中打开gvim?

4

我已经安装了mintty。但是之后我无法打开gvim。根据同样问题对emacs的建议,我使用以下命令:

1)mintty gvim

这将在一个新窗口中打开以下信息:

E233: 无法打开显示E852:子进程启动 GUI 失败。 请按 ENTER 键或键入命令继续。

此外,我已经设置了:export DISPLAY=":0"

我做错了什么?

5个回答

4
你可能没有运行X服务器。在此处查看设置说明(http://x.cygwin.com/)。个人建议卸载cygwin版本的gvim并使用windows版本代替。

非常感谢Karl。请告诉我如何在Cygwin中使用gvim的Windows版本。另外,我从退出选项关闭了X终端,现在我收到错误消息:startxwin:DISPLAY:0上运行另一个X服务器实例:资源暂时不可用。 - Chandan Choudhury

1

当我启动gvim时,遇到了同样的问题,并收到如上所述的错误消息。

我的默认DISPLAY设置为:0.0

然而,我在我的startxwin输出中注意到,它说

""" Rules =“base”Model =“pc105”Layout =“us”Variant =“none”Options =“none” winMultiWindowXMsgProc - DISPLAY =:2.0 winInitMultiWindowWM - DISPLAY =:2.0 winProcEstablishConnection - winInitClipboard返回。 """

我将我的显示设置为:2.0,现在它可以工作了。 即 export DISPLAY =:2.0

希望这可以帮助。

[此外,该脚本似乎检查/tmp/.X11-unix/Xn,其中Xn中的n是一个数字。 看起来我已经有X0和X1了,可能是由于旧的错误关闭。 删除它似乎可以恢复使用:0.0]


谢谢!我也遇到了那个问题!请注意,ls命令可能会将文件显示为/tmp/.X11-unix/X0=,但是'='是一种罕见的文件类型指示符。然而,gvim对我仍然无效,出现相同的错误。 - Phil Goetz

1

您可以在.bash_profile文件中定义一个函数(需要确保gvim.exe在您的$PATH中)。

vim() {
  echo "cygstart gvim.exe --remote-tab-silent $(cygpath -w "$@")"
  cygstart gvim.exe --remote-tab-silent $(cygpath -w "$@")
}

0

像user2250246一样,我放弃了尝试让cygwin的gvim再次工作,但我不想键入或别名gvim。(我可能应该这样做。别名更容易。)

我将Windows应用程序的gvim路径添加到了我的Windows环境变量中:

  1. 通过在“开始”菜单中找到其图标并右键单击,然后打开属性来获取gvim的路径。找到目标链接并复制除最后的“gvim.exe”之外的所有内容。
  2. 转到控制面板 -> 系统 -> 高级系统设置 -> 环境变量 -> 系统变量。选择Path。点击编辑。在开头粘贴该路径。点击确定。点击确定。

然后Cygwin会将您的Windows gvim放在其路径上,但它会将/usr/bin放在其自己的路径前面。所以

  1. mv /usr/bin/gvim /usr/bin/gvim-screwed-up

    mv /usr/bin/gvimdiff /usr/bin/gvimdiff-screwed-up

你的Cygwin将会找到并运行已安装在Windows上的gvim,无论你是否启动了Cygwin X服务器。

不幸的是,它将不再加载你的Cygwin .vimrc文件!你需要自己修复这个问题。


0

对我来说,gvim 是从 /usr/bin/gvim 中获取的。 我将 gvim 安装为 Windows 应用程序,然后直接从其 Windows 路径调用它。

[cygwin$] /cygdrive/C/Program\ Files\ \(x86\)/Vim/vim74/gvim

它运行成功了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接