首先,我对可能不正确的术语道歉。我是从Windows背景来看这个,只有Windows和DOS知识来表达我的需求。
背景
我正在使用Console2在两个不同的标签中运行Git Bash。
这些选项卡设置为在不同的工作目录中启动,以便默认使用2个不同的存储库。
我创建了一堆别名来简化我使用GIT的方式。 这些目前驻留在我的用户文件夹中的.bash_profile中。
.bash_profile似乎是旧的DOS autoexec.bat文件的linux等价物。因此,我的别名是为启动git sh.exe的任何选项卡设置的。
我被告知如果我把hg.exe(mercurial)放在路径上,那么我就能用这种方式同时使用hg和Git。 事实证明这是正确的。
我的目标是什么
我希望能够配置不同的选项卡以使用不同的别名。
在这个特定的情况下,我希望能够设置一个仍然运行Git Bash(sh.exe)的HG选项卡,但它会初始化一组不同的别名。
我相信我需要
问题
如何调整设置Console2标签(当前启动sh.exe),以便它传递“命令”文件的名称以便在启动时运行?
答案 0 :(得分:0)
您可以将脚本名称传递给bash.exe,然后运行它。请记住,虽然bash期望路径是UNIX风格的 - 例如,而不是C:\temp\myscript.sh
,它会像/cygdrive/c/temp/myscript.sh
那样希望它。
有关调用bash in the bash manual的更多信息。
(如果需要,可以使用cygpath.exe自动执行此翻译。我有一个example on my blog。)
更新听起来好像要使用--init-file
或--rcfile
并在那里指定启动命令。
答案 1 :(得分:0)
使IMHO更有意义地编写别名,以便它们在不同的环境中表现不同。行为选择器可以是当前目录的名称,也可以是当前目录中是否存在标志文件;别名或脚本文件可以包含此代码,或者启动脚本可以提供不同的文件,或者只是根据选择器设置不同的PATH。
像这样;在.bashrc
中添加
test -e .git && . ~/bin/gitalises.sh
test -e .hg && . ~/bin/hgaliases.sh
或者像这样;
test -e .git && PATH=~/bin/git:$PATH # put co for git in ~/bin/git/co
test -e .hg && PATH=~/bin/hg:$PATH # and ditto for ~/bin/hg/co
或者像这样;
test -e .git && VC=git
然后在命令行上,您可以随时设置VC=hg
,前提是您的脚本(或别名;但我建议使用函数或脚本)看起来像
case $VC in
git) git --gobble=gook "$@";;
hg) hg bbq a/c "$@";;
*) echo "err um uh" >&2 ;;
esac
这还取决于您在别名中共享的代码数量;某些内容的hg
别名与某些内容的git
别名有什么不同?然后分开维护它们。或者将共享代码封装在两者使用的公共源文件中。
答案 2 :(得分:0)
以下适用于我使用Console2。它在我的cygwin $ HOME目录中使用Cygwin的bash shell和.bash_profile。
<path_to_cygwin>\bin\bash.exe --login -i -c "cd /cygdrive/c/Cygwin/home/<username>; exec /bin/bash --init-file .bash_profile
只需将.bash_profile
替换为shell启动时要提供的文件(显然使用您自己的用户名和路径)。
答案 3 :(得分:0)
使用console2作为选项卡的包装器。这是article for setting up