-
-
Notifications
You must be signed in to change notification settings - Fork 782
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
xrepo env shell bugs #1349
Comments
我这测试可以么,自己设置的 prompt 可以生效,就是 os.getenv("PS1") 取不到而已。话说这默认的
PS1 取不到,就直接 edit: |
这还得搞 activate xxx 啥的也很蛋疼~ 如果要搞 xrepo.ps1,那在 cmd/ps 下执行 xrepo 如果选择正确的 .bat/.ps1 后缀版本呢? |
powershell里面运行xrepo会优先找xrepo.ps1,cmd里面就只会找xrepo.bat |
那就帮忙在 scripts里加个就好了 |
现在发现cmd也有问题,在cmd里面按方向键无法滚动到之前的命令,所以用os.exec拉cmd也不行,还是要加一个命令来退出环境 custom environment功能有点类似于tab completion,都是shell的扩展,是否可以考虑做一个抽象来管理所有shell扩展?
conda对tab completion和environment management也是放在一起处理的 |
先这么凑合着用吧,暂时没精力细搞,等之后有时间了再看看 |
用 xrepo.ps1,有些系统上会有下面这个问题,用户报上来的
目前只能通过用户手动运行
来解决,不知道有没有更好的方式 |
可以在tab completion的profile里面加一行运行这个命令;但不如让用户自己加 其实使用get.ps1来安装xmake也是需要预先运行这个的,这个只要设置一次就行。只有直接从安装包安装会出现这个问题,有一个解决方法是把xrepo.ps1和tab completion都放在get.ps1脚本里面下载,用安装包安装的用户可以之后再安装tab completion和xrepo.ps1 |
那也可以,至少大部分 xrepo 命令和操作,xrepo.bat 足够了,现在全局中断 体验不是很好。。只有 xrepo env shell 才需要 xrepo.ps1 ,安装包安装的用户,如果执行 xrepo env shell ,如果检测到是执行的 xrepo.bat,可以在 lua 里面 加个提示让用户自己选择是否下载 xrepo.ps1 ,或者直接内部lua脚本下载安装进去 |
描述讨论详情
#1340
这里我提交的patch还是不行,windows上经测试无论何时拉起的都是cmd(原因是xrepo实际为xrepo.bat,powershell运行xrepo就会调用cmd去运行,所以取得的环境也是cmd的环境),还需要一个xrepo.ps1供powershell自动调用。powershell在launch的时候使用function可能也不行,anaconda的做法是注册一个Invoke-Conda()作为powershell函数,然后conda作为Invoke-Conda的alias,调用conda activate base并不是conda.exe而是Invoke-Conda(activate, base)
linux(ubuntu 20.04)上经测试bash并不会带有提示符,因为环境变量的PS1在加载~/.bashrc的时候会被重置。anaconda的做法是注册一个conda()作为bash函数,调用conda activate base实际上是conda(activate, base),xrepo也可以效仿,但效果如何需要进一步评估
目前看用os.exec带起一个shell只对cmd完全有效
The text was updated successfully, but these errors were encountered: