可以使用WSL(Ubuntu)在终端(VS Code& Hyper)中查看更短的路径。在Ubuntu之上,我安装了zsh。目前,我使用git bash和路径看起来Lukas@Y50-70 ~/Coding
但是对于Ubuntu,我有类似lukas@Y50-70 /mnt/c/Users/Lukas/Coding
的东西。当我在另外2个文件夹中有一个项目并且我有一个很长的分支名称时,有一个完整的行不必要的信息(对我而言)很烦人。
这是Ubuntu和git bash的比较:
感谢
答案 0 :(得分:1)
检查zsh installation guide under WSL是否有帮助(来自neurogenesis):
- 使用
安装zsh
sudo apt-get install zsh
bash.exe
是WSL / linux子系统的入口点。您必须修改Windows快捷方式以指定bash -c --login
或使用~/.bashrc
修改exec /bin/zsh
以正确加载其他外壳。
/etc/passwd
未咨询SHELL
,因为它不是完整的登录过程。请务必同时设置umask
env var。有关详细信息,请参阅#846。- 在开始安装之前修复
醇>group
,否则zsh等工具会抱怨 具体来说,"other
"和"compaudit
"权限将具有与所有者相同的权限。这会导致zsh的compinit
和umask 022
失败(两者都与命令完成有关)。
有关详细信息,请参阅#352。可以将~/.bashrc
添加到您的zsh
。注意:这应该在尝试安装
antigen
之前的~/.bashrc
插件管理器之前完成(否则git clones中的目录/文件权限问题)。
您还应该在安装RVM或rbenv之前执行此操作。我最后在
# ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples ## Fix missing umask value umask 022 ## Launch Zsh if [ -t 1 ]; then cd $HOME export SHELL=/bin/zsh exec -cl $SHELL fi
的顶部插入了几行,如下所示:
-c zsh
Issue 846(在第2点中提到)包括the comment:
正常的
C:\Windows\System32\bash.exe ~ -c /bin/zsh
符号链接在我错误的目录中打开,但我使用了这个(注意代字号):
getContentPane().add(jTextField1, java.awt.BorderLayout.PAGE_START);
另见" How to Use Zsh (or Another Shell) in Windows 10"。
答案 1 :(得分:1)
我知道这并不是您所希望的解决方案。我一直在寻找解决相同的问题。提示太长,导致我的一些命令换行到下一行。在看到有关VonC答案的评论后,我决定保留我的下一个最佳解决方案。
我在〜/ .bashrc文件中所做的是这样的:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\n\$ '
fi
我在\n
之前添加了\$
因此,当我位于Windows主文件夹中时,它看起来像这样
ryan@DESKTOP-RSKAA4F:/mnt/c/Users/ryank
$
然后在$
之后开始键入命令。它占用了更多的垂直空间,但是至少不必为了避免自动换行而最大化我的终端窗口。
答案 2 :(得分:0)
我能够使用命名目录解决此问题-通过将这一行添加到您的〜/ .zshrc文件中
hash -d c=/mnt/c
您会在提示符下看到“〜c /”,而不是“ / mnt / c /”,我认为这样更好。
这与为目录设置别名具有相似的效果,但是名称会反映在您的路径显示方式中。
作为一项额外的奖励,您可以随时输入~c
答案 3 :(得分:0)
在我看来,在启动终端会话后仅运行'cd',会将提示重新设置为正常的'/ home /(user)'
应该不需要安装zsh或其他任何东西。无论如何,它对我有用。
从Windows的根文件夹启动会话时,似乎也可以解决问题。
我的会话保持不变
C:\ vms
样本:
cd -d C:\vms\minikube\ubu_jenkinsX\rootfs
C:\vms\minikube\ubu_jenkinsX\rootfs>wsl -d ubu_jenkinsX
您可能在本地数据中的用户资料下。搜索rootfs文件夹
答案 4 :(得分:0)
您的 WSL 提示显示这么长的路径是因为您实际上不在您的主目录中。你看,WSL 有自己的独立于 Windows 的虚拟文件系统,Windows 路径(比如你的 C:\Users\Lukas\...
)存储在 /mnt/c/Users/Lukas/...
下。您的 WSL 主目录将是 /home/Lukas
(因为您的 WSL 用户名大写),但当然,这不是您的项目所在的位置。
fish
shell 有一个 prompt_pwd
函数,可以缩短类似这样的路径:
0 ---- /m/c/U/L/Documents cd Something
0 ---- /m/c/U/L/D/Something prompt_pwd
/m/c/U/L/D/Something
这是你感兴趣的东西吗?您可以将 the function 移植到 Bash,或者只是切换到 Fish,或者只显示当前目录名称而不是路径。