我记得当我第一次安装cygwin时,我可以使用Windows应用程序从我的主目录中打开文件。例如,我在Windows中安装了Emacs,我可以runemacs ~/some_file.txt
。我的空间不足,不得不将我的cygwin安装移到另一个驱动器上。从那时起,我似乎已经破坏了我的安装,我不能再使用这样的Windows应用程序。
我完全删除了cygwin,并像以前一样在C:\ cygwin中重新安装,但问题仍然存在。
我发现由于某种原因~
扩展为C:\home\Tudor
而不是C:\cygwin\home\Tudor
。
有谁知道我怎么能让它再次起作用?
答案 0 :(得分:2)
非Cygwin Windows应用程序不知道您的Cygwin根目录或主目录。
Emacs是一个特例。它最初是在UNIX上开发的,它使用类似UNIX的语法。
根据您的最新评论,Emacs将~
扩展为C:\Users\Tudor
。这是您的 Windows 主目录,而不是您的Cygwin主目录。
您还可以安装Cygwin版本的Emacs,与任何Cygwin应用程序一样,它会将~
扩展到您的Cygwin主目录。
如果从Cygwin shell调用Windows应用程序,那么不 Windows应用程序的shell将~
扩展到您的Cygwin主目录,用Cgywin语法表示。例如,假设runemacs
是非Cygwin应用程序,如果我运行:
bash$ runemacs ~
然后shell扩展~
,所以它相当于(假设我的用户名是Tudor
):
bash$ runemacs /home/Tudor
runemacs
可能会将/home/Tudor
视为等同于\home\Tudor
,如果当前广告为C:\home\Tudor
,则相当于C:
。
如果您在Emacs中键入 Ctrl-X Ctrl-F 来打开文件,那么Emacs将根据其内部遵循的规则解释~
;这些规则不太可能识别Cygwin,除非您运行的是Cygwin版本的Emacs 或 Emacs本身有一些特殊情况代码来处理Cygwin路径。