我今天只是鼓励 zsh 出现一个奇怪的问题。
我的环境是 Mac OS X Yosemite,zsh 5.0.5 (x86_64-apple-darwin14.0)
在 .zshrc 中,我手动将 PATH 变量设置为类似
export PATH="$PATH:~/.composer/vendor/bin"
Run Code Online (Sandbox Code Playgroud)
echo $PATH在终端中尝试,结果如预期(包含~/.composer/vendor/bin)。然后尝试从 执行二进制文件~/.composer/vendor/bin,它总是会返回“zsh: command not found”错误。
尝试切换到 bash,echo $PATH也符合预期,结果与 zsh shell 相同。尝试从 执行二进制文件~/.composer/vendor/bin,没有发现问题。似乎 PATH var 在 bash shell 上运行良好。
我的 zsh shell 有什么问题?
谢谢
我开始使用 zsh 和名为“oh-my-zsh”的插件,并在 ~/.zshrc 中设置我的个人别名。
alias ls='ls -aF'
Run Code Online (Sandbox Code Playgroud)
进而
source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
但该命令ls不会突出显示输出。(不过该命令可以正常工作。)
我实在不明白为什么。
有任何想法吗?
我在 ZSH 中设置了一个功能,可以快速导航到我的 ~/Sites 目录中的文件夹。
site() { cd ~/Sites/"$1"/website/; }
Run Code Online (Sandbox Code Playgroud)
因此,如果我输入site clientsite它将 cd 到 ~/Sites/ clientsite /website/,这里没有发生太复杂的事情。
我想知道如何根据我内部的文件夹自动完成此操作~/Sites/。
因此,当我输入时,site cli[HIT TAB]它会自动完成为site clientsite.
我喜欢 bash 中所谓的“彩虹提示符”:
我这样制作:
export PS1="\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"
不幸的是,该代码在 zsh(这是我的主 shell)中不起作用。
我怎样才能在 zsh 中达到相同的结果?
我将我的 shell 更新为 zsh,当我输入 flutter --version 时,我得到了这个:
'''xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Failed to find the latest git commit date: VersionCheckError: Command exited
with code 1: git -c log.showSignature=false log -n 1 --pretty=format:%ad
--date=iso
Standard out:
Standard error: xcrun: error: invalid active developer path
(/Library/Developer/CommandLineTools), missing xcrun at:
/Library/Developer/CommandLineTools/usr/bin/xcrun
Returning 1970-01-01 01:00:00.000 instead.
Flutter 0.0.0-unknown • channel unknown • unknown source
Framework • revision () • 1970-01-01 01:00:00.000
Engine • revision b8752bbfff
Tools • …Run Code Online (Sandbox Code Playgroud) 我只想为目录着色,而不为其他文件(如 .txt 等)着色。
\n这是我当前的 .zshrc:
\nPROMPT='%n%F{086}\xe2\x80\x94%f%M %F{057}::%f %F{028}%~%f %F{057}\xc2\xbb%f '\nRun Code Online (Sandbox Code Playgroud)\n如果我拿走最后%fPROMPT='%n%F{086}\xe2\x80\x94%f%M %F{057}::%f %F{028}%~%f %F{057}\xc2\xbb '它会将所有文件类型着色为相同的 057 颜色。
如何仅针对目录来应用颜色并将其自己的颜色与 057 颜色分开?
\n我正在使用 oh-my-zsh 并且我想使用插件nvm。它工作正常,除了一个部分,即自动切换到正确的节点版本。
我已在 .zshrc 文件中设置了 env 变量NVM_AUTOLOAD=1,但它不起作用。
有人知道如何解决这个问题吗?
谢谢。
让我说我有这个bash脚本(测试):
#!/usr/bin/env bash
source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
在我的.zshrc中,我有以下内容:
autoload -U compinit
compinit
Run Code Online (Sandbox Code Playgroud)
当我尝试从终端窗口(zsh)运行'bash test'时,我收到错误,说找不到autoload和compinit命令.如果我只是从命令行执行source~/.zshrc,它可以正常工作.
我正在尝试设置我的开发环境,类似于这个博客,但是当脚本尝试并获取.zshrc文件时,它会失败.
任何见解将不胜感激.
运行后我在 Mac OSX 10.11 上
brew doctor
Run Code Online (Sandbox Code Playgroud)
我的终端中有一个警告。
Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
在我的.zshrc文件中修复了这个 PATH 后,我brew doctor再次运行,这个错误仍然存在。
有什么建议?
我的.zshrc文件中有一个别名,称为“管家”,如下所示:
alias housekeeping="git fetch -p && git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -d"
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时,由于某种原因,我得到以下输出:
error: The branch '12795-add-ship-info-to-FAQ' is not fully merged.
If you are sure you want to delete it, run 'git branch -D 12795-add-ship-info-to-FAQ'.
error: branch '97167bb3f' not found.
error: branch '[origin/12795-add-ship-info-to-FAQ:' not found.
error: branch 'gone]' not found.
error: branch 'Edits' not found.
error: branch 'to' not found.
error: branch 'text' not found.
Run Code Online (Sandbox Code Playgroud)
看起来好像传递了错误的论点。
但是,当我直接从终端运行完全相同的命令时,确实得到了预期的结果。
我究竟做错了什么?
我在我的 Mac 上为 Android Studio 安装了 JDK(我之前已经这样做过),并使用 Homebrew 进行安装。完成后我得到了这些建议?我想知道我是否希望系统 Java 包装器找到 JDK,我应该对其进行符号链接吗?以及为什么我会首先想要它?另外,我正在使用 .zshrc,因为它现在是默认的 Catalina,并且想知道我是否以相同的方式设置 $PATH 变量?
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
openjdk is keg-only, which means it was not symlinked into /usr/local,
because it shadows the macOS `java` wrapper.
If you need to have openjdk first in your PATH run:
echo 'export PATH="/usr/local/opt/openjdk/bin:$PATH"' >> ~/.zshrc
For compilers to find openjdk you may need to set:
export CPPFLAGS="-I/usr/local/opt/openjdk/include"```
Run Code Online (Sandbox Code Playgroud)