【发布时间】:2015-09-16 02:28:17
【问题描述】:
我正在尝试在 cygwin 中为 mac 计算机模仿 iterm 中的 subl 命令。
基本上,我希望能够通过键入 subl . 从 cygwin 打开当前文件夹
我没有找到任何好的说明。我知道我的 .bashrc 文件所在的位置。我只是不知道该怎么做才能创建命令subl 并使其遵循subl 的路径以Sublime 打开。
有人可以帮忙吗?
【问题讨论】:
我正在尝试在 cygwin 中为 mac 计算机模仿 iterm 中的 subl 命令。
基本上,我希望能够通过键入 subl . 从 cygwin 打开当前文件夹
我没有找到任何好的说明。我知道我的 .bashrc 文件所在的位置。我只是不知道该怎么做才能创建命令subl 并使其遵循subl 的路径以Sublime 打开。
有人可以帮忙吗?
【问题讨论】:
你想创建一个别名并从 bashrc 获取它。
例子
创建一个文件~/.bash_aliases:
alias subl='/cygdrive/c/sublime.exe' #make sure this command is correct for you
现在在~/.bashrc 做:
source ~/.bash_aliases
退出并重新登录,subl . 应该可以工作
【讨论】:
$1 &。我不确定如何使用 .bash_aliases 来完成它,因为在另一个示例中引号是不必要的。
nohup 可能是更好的选择,但您可以根据需要将 & 作为别名的一部分。只需在最后一个引号之前添加&
假设您在执行 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,这样它就会与终端分离。
【讨论】:
打开文件并使用 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
【讨论】:
您也可以简单地将 Sublime 添加到您的 PATH 变量中。对于 cygwin,您可以:
ls -a 验证.bash_profile 是否存在
.bash_profile 类似vim .bash_profile
export PATH=$PATH:"/cygdrive/c/Program Files/Sublime Text 3"(或任何顶级安装文件夹Sublime)subl 验证它是否正常工作【讨论】: