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

时间:2015-09-16 02:28:17

标签: bash cygwin

我试图在cygwin中为mac计算机模仿iterm中的subl命令。

基本上,我希望能够通过输入subl .

从cygwin打开当前文件夹

我还没有找到任何好的指示。我知道我的.bashrc文件所在的位置。我只是不知道如何创建命令subl,并使其成为使subl后面的路径以Sublime打开。

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:2)

你想创建一个别名并从bashrc中获取它。

实施例

使用以下内容创建文件~/.bash_aliases

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

现在在~/.bashrc执行:

source ~/.bash_aliases    

退出并重新登录,subl .应该正常工作

答案 1 :(得分:1)

打开文件并使用Gi​​t工具(commit,rebase,tag,... messages):

#!/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

答案 2 :(得分:0)

您还可以简单地将Sublime添加到PATH变量中。对于cygwin,您可以:

  1. 转到您的主目录,并验证.bash_profilels -a存在
  2. 使用类似.bash_profile的内容打开vim .bash_profile
  3. 添加行export PATH=$PATH:"/cygdrive/c/Program Files/Sublime Text 3"(或Sublime所在的任何顶级安装文件夹)
  4. 重新打开终端,然后使用subl验证它是否有效

答案 3 :(得分:0)

假设您在执行subl ~时希望行为正确,那么简单的别名或向您的PATH添加Sublime Text无效。

您可以改用以下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,这样它就可以与终端分离。