ConEmu + WSL:在当前标签目录中打开新控制台

4
我正在使用WSL和ConEmu build 180506。我试图在ConEmu中设置一个任务,以便在打开新控制台时使用活动选项卡的当前目录,但我无法使其工作。 我所做的是使用此页面上的说明设置任务{Bash:bash}。
将任务命令设置为:
set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -C~ -cur_console:pm:/mnt

然后按照这个页面上的说明,我添加到了我的.bashrc文件中。
if [[ -n "${ConEmuPID}" ]]; then
  PS1="$PS1\[\e]9;9;\"\w\"\007\e]9;12\007\]"
fi

最后,使用宏设置快捷方式:

Shell("new_console", "{bash}", "", "%CD%")

但它总是在默认目录('/home/[username]')打开新的控制台。
我不明白我做错了什么。 我还注意到很多环境变量在此处列出未设置。基本上,只有$ConEmuPID和$ConEmuBuild被设置。
任何帮助都将不胜感激。

请勿使用旧版本 - Maximus
我已卸载了ConEmu,并下载了安装程序进行重新安装,但问题仍然存在。 - Alex Lepailleur
尝试使用宏 Shell("new_console:I", "{bash}", "", "%CD%") - Maximus
关于选项卡模板,我不确定我理解了。在“选项卡栏”中,我看到在控制台中有“<%c> %s”,它应该显示“<Console #> Title”,但我不确定“Title”定义在哪里。在我的情况下,这将对应于“用户名@主机:当前目录”。如果我将控制台字段切换为“%d”,它只会显示正确的当前目录。 - Alex Lepailleur
抱歉,我之前的评论留了三次,但我无法再进行编辑。我试图将宏更改为 Shell("new_console:I", "{Bash::bash}", "", "%CD%") ,因为这是该任务的完整名称,替换之前的错误信息,现在我得到的是 http://prntscr.com/ji6wv9 (第一行已更改)。 - Alex Lepailleur
显示剩余2条评论
2个回答

2

GuiMacro Shell旨在运行特定的命令,而不是任务。

您认为可以尝试运行宏Task("{bash}","%CD%")

或将您的{bash}任务参数设置为-dir %CD%并为您的任务设置热键。

当然,这两种方法都需要从shell中获取工作目录。在您的情况下似乎没问题 - %d显示正确的文件夹。


感谢澄清。实际上,我在任务参数中有“-dir %CD%”,但这也没有帮助。 我尝试了Task("{bash}","%CD%"),但它也不起作用。它总是打开新控制台的主目录。我真的很困惑,因为%d确实显示了正确的值! 有没有办法在打开新控制台之前检索该值并将其存储在环境变量中,然后只需在我的.bashrc中设置一个使用该环境变量的cd命令? - Alex Lepailleur
我解决了。问题是在任务命令中有-C~,它强制它进入主文件夹,显然忽略了任务参数。我将其删除,现在它可以正常工作了。抱歉,并感谢您! - Alex Lepailleur
现在发生了什么:如果我在我的主文件夹(/home/zupalex/[...])中的任何位置,它会在默认启动文件夹中打开新标签页。如果我在其他任何地方(例如/mnt/d/),它会显示错误消息“无法创建新控制台,命令执行失败(代码267),目录名称无效。[...]工作文件夹:“\mnt\d””。不确定发生了什么。 - Alex Lepailleur
1
WSL主目录路径无法映射到Windows文件系统,因此这些“无效”的路径无法被ConEmu处理。 - Maximus
1
正如我所说,某些WSL文件夹在Windows文件系统中没有对应的表示方式,因此ConEmu无法在那里“重新启动”你的shell。 - Maximus
显示剩余7条评论

0

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