Cygwin:使用已安装在 Windows 中的程序?

joh*_*n2x 5 cygwin

我刚刚安装了 Cygwin,但对它的工作原理有些困惑。我看到我在C:\cygwin\home. 我已经使用它们各自的安装程序在我的 Windows 机器上安装并设置了 Mercurial、Vim、Git 等。我如何让 Cygwin 使用这些程序,以及它们的配置文件(_vimrc 等)?

gar*_*ohn 3

Cygwin 的主要目的是在 Windows 之上提供类似 Linux 的环境。它最适合为 Cygwin 编译的程序。它可以直接与本机Windows程序一起工作,但你必须小心。

Cygwin 的一个特点是它试图使 Windows 文件系统看起来像典型的 Linux 文件系统,例如,程序位于 /usr/bin 下。Cygwin 程序不引用 C: 驱动器,而是引用 /cygdrive/c。(某些 Cygwin 程序可以识别“C:”,但这些是例外。)虽然您的主目录在 Windows 中显示在 C:\cygwin\home 下,但在 Cygwin 中它显示在 /home 下。这意味着在 Cygwin 程序和 Windows 程序之间传递完整路径名可能会很棘手:Windows 程序不理解 Cygwin 完整路径名,而 Cygwin 程序通常不理解 Windows 完整路径名。有一个 Cygwin 实用程序 cygpath,可以在 Windows 和 Cygwin 路径之间进行转换,但您必须根据需要自行插入该级别的转换。

我不知道 Cygwin 程序与 Windows 程序接口问题的通用解决方案。最好的解决方案取决于您想要做什么、您想要生活在 Linux 世界还是生活在 Windows 世界的程度以及您需要使用的程序。

如果您计划从 Cygwin 命令行使用 Mercurial、Vim、Git 等,我建议您安装这些程序的 Cygwin 版本。您的系统上可以同时拥有 Windows 和 Cygwin 版本,但您必须小心您的 PATH。

我尝试配置 Windows gvim 以使用 Cygwin shell,最后放弃了。现在,我从 GUI 打开文件时使用 Windows gvim,从命令行打开文件时使用 Cygwin vim。Windows Vim 中有太多地方 Windows 操作系统 API 的约定必须与外部程序的 Cygwin 约定相匹配。也就是说,为两者使用相同的用户配置文件很容易。在 Cygwin bash shell 中:

ln -s /cygdrive/c/Documents\ and\ Settings/username/_vimrc ~/.vimrc
ln -s /cygdrive/c/Documents\ and\ Settings/username/vimfiles ~/.vim
Run Code Online (Sandbox Code Playgroud)

您只需确保所有这些文件都有 Unix 行结尾,并使用d2u那些没有的文件。Cygwin 的 Vim(任何 Unix Vim)需要 Unix 行结尾;Windows Vim 接受 Unix 或 DOS 行结尾。

我经常使用 Cygwin,但我不是专家。以上仅反映我的经历。