如何在cygwin中创建一个命令来运行Sublime Text?

4
我试图在cygwin中模仿mac电脑的iterm中的subl命令。
基本上,我想通过键入subl . 在cygwin中打开当前文件夹。
我没有找到任何好的说明。我知道我的.bashrc文件在哪里。我只是不知道该怎么做来创建subl命令,并使其后面的路径使用Sublime打开。
有人能帮忙吗?
4个回答

4

您需要创建一个别名,然后从bashrc中调用它。

例如

创建一个文件~/.bash_aliases,其内容为:

alias subl='/cygdrive/c/sublime.exe' #make sure this command is correct for you

现在在~/.bashrc中执行以下操作:
source ~/.bash_aliases    

退出并重新登录,然后subl .应该可以工作了。


谢谢!那个完美地解决了问题。在你回答之前,我通过文件资源管理器创建了一个名为subl的文件,并在其中编写了一个脚本来完成它。不过你的答案似乎加载Sublime更快。再次感谢! - Daniel Breen
1
跟进:这个方法可以解决问题,但是需要等到我再次退出sublime之前一直锁定cygwin。有什么语法可以避免这种情况发生吗?另外,我只需添加$1 &即可完成其他方式。但是我不确定如何在.bash_aliases中实现它,因为在其他示例中引号是不必要的。 - Daniel Breen
我不确定它是否适用于cygwin bash,但我会将其作为nohup启动:$ nohup /cygdrive/c/sublime.exe & - Marc Young
nohup可能是更好的选择,但如果您想要,可以将&作为别名的一部分。只需在最后一个引号之前添加&即可。 - pak

2
假设您希望在执行“subl〜”时获得正确的行为,简单的别名或将Sublime Text添加到您的“PATH”中将无法起作用。
相反,您可以使用以下bash函数(将其放置在您的“.bashrc”中):
function subl {
    cygpath --windows $@ | sed 's/\\/\\\\/g' | tr '\n' '\0' | xargs -0 -n1 /cygdrive/c/Program\ Files/Sublime\ Text\ 3/subl.exe
}

请注意,当向 xargs 传递路径时,您需要 1) 转义反斜杠,2) 使用 NUL 字符作为参数分隔符,以便在处理带有空格的路径时正常工作。 编辑: 使用 subl.exe 而不是 sublime_text3.exe,这样它就可以与终端分离。

1

打开文件并使用Git工具(提交、变基、标签等)的步骤:

#!/bin/bash
# To create in [.babun/]cygwin/usr/local/bin/subl with chmod +x

ARGS=""
while test $# -gt 0
do
  ARGS="$ARGS ${1#/cygdrive/[a-zA-Z]}"; # Remove /cygdrive and disk letter from the path
  shift
done

/cygdrive/c/Program\ Files/Sublime\ Text\ 3/subl.exe $ARGS

https://gist.github.com/cmalard/16c58869319c9a88473ec08cc7989c6b


0

您也可以将Sublime添加到PATH变量中。对于cygwin,您可以:

  1. 进入您的主目录并使用ls -a验证.bash_profile是否存在
  2. 使用类似vim .bash_profile的命令打开.bash_profile
  3. 添加以下行:export PATH=$PATH:"/cygdrive/c/Program Files/Sublime Text 3"(或者Sublime所在的顶级安装文件夹)
  4. 重新打开终端并使用subl命令验证它是否有效

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