在我的 ZSH 提示中,我希望能够输出当前历史事件编号(%!或%h)-1
如果当前历史事件编号是 !256,我想将其减一并在我的提示中输出结果(即 !255)。
这是它现在的样子以及我希望它的样子:

下面是我当前的 ZSH 主题(与此问题有关的代码位于previous_history_event_number ()函数中,该函数由return_code_enabled=声明触发:
# ------------------------------------------------------------------------------
# FILE: hced.zsh-theme
# DESCRIPTION: oh-my-zsh theme file.
# (Credits to authors of blinks.zsh-theme and dieter.zsh-theme
# from which themes I've taken useful bits.)
# AUTHOR: hced
# VERSION: 0.0.1
# SCREENSHOT:
# ------------------------------------------------------------------------------
function _prompt_char() {
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
echo "%{%F{blue}%}±%{%f%k%b%}"
else
echo ' '
fi
}
ZSH_THEME_GIT_PROMPT_PREFIX=" [%{%B%F{blue}%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{%f%k%b%K{black}%B%F{green}%}]"
ZSH_THEME_GIT_PROMPT_DIRTY=" %{%F{red}%}*%{%f%k%b%}"
ZSH_THEME_GIT_PROMPT_CLEAN=""
PROMPT='%{%f%k%b%} …Run Code Online (Sandbox Code Playgroud) 我尝试将 python 2.7 升级到 python 3 并修改了文件,~/.bash_aliases但是当我在基本终端中键入 python 时出现此错误
zsh: command not found: python3
Run Code Online (Sandbox Code Playgroud)
当我输入 which python
python: aliased to python3
Run Code Online (Sandbox Code Playgroud)
实际上我更喜欢回到 python 2.7 或者如果有人知道我该如何解决这个问题:c
我今天只是鼓励 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 有什么问题?
谢谢
我正在尝试获取基本名称(没有文件扩展名),以便我可以使用正确的文件名快速处理音频文件目录(.flac -> .m4a)。
所以这有效:
for i in *.flac;do ffmpeg -i $i -c:a libfdk_aac -vbr 3 $i.m4a; done
Run Code Online (Sandbox Code Playgroud)
但它给我留下了这样的文件:audiofile.flac.m4a
我想要做的只是获取文件名的“音频文件”部分,这样就可以了:
for i in *.flac;do ffmpeg -i $i.flac -c:a libfdk_aac -vbr 3 $i.m4a; done
Run Code Online (Sandbox Code Playgroud)
但我不理解修饰符(显然“:t”修饰符可能会给我结果?)或如何在 for 循环上定义变量(对于每个文件)。另外,我看到有很多关于如何使用 BASH 执行此操作的示例,但我正在寻找适用于 zsh 的东西。
有任何想法吗?
谢谢!
$ make dependencies
Run Code Online (Sandbox Code Playgroud)
在我的 Mac 终端中给出
make: lsb_release: Command not found
Run Code Online (Sandbox Code Playgroud)
这是完整的消息:
make: lsb_release: Command not found
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
/bin/bash: md5sum: command not found
mldb/ext/tinyxml2//tinyxml2.mk:1: *** hash_command1 didnt set variable g++_-fPIC_-m64_-fno-omit-frame-pointer_-msse3_-msse4.2_-Imldb_-Wall_-Werror_-Wno-sign-compare_-Woverloaded-virtual_-Wno-deprecated-declarations_-Wno-deprecated_-Winit-self_-Wno-unused-but-set-variable_-Wno-psabi_-Wno-unknown-pragmas_-pipe_-ggdb_-std_c++0x_-D_GLIBCXX_USE_NANOSLEEP_1_-D_GLIBCXX_USE_SCHED_YIELD_1_-fno-builtin-malloc_-fno-builtin-calloc_-fno-builtin-realloc_-fno-builtin-free_-o_build/x86_64/obj/mldb/ext/tinyxml2/tinyxml2.cpp.lo_-c_./mldb/ext/tinyxml2/tinyxml2.cpp_-MP_-MMD_-MF_build/x86_64/obj/mldb/ext/tinyxml2/tinyxml2.cpp.d_-MQ_build/x86_64/obj/mldb/ext/tinyxml2/tinyxml2.cpp.lo_-O3_-DBOOST_DISABLE_ASSERTS_-DNDEBUG_hash. Stop.
Run Code Online (Sandbox Code Playgroud)
我安装了 GNU Make 3.81。另外,我做了:
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.3.0 (clang-703.0.29)
Target: x86_64-apple-darwin15.3.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Run Code Online (Sandbox Code Playgroud)
我在 Mac OS X 上。它可以链接到 zsh,因为我不久前安装了它,我相信我所有与 xcode 相关的工具以前都运行得很好。
感谢您的任何帮助或指示,可以为我指明解决此问题的正确方向。
我尝试构建的更新c++ 代码适用于 ubuntu 14
我需要添加一个 ppa 但我在 Mac 上,我怎么能sudo add-apt-repository ppa:author-name/example.js在 Mac 上呢?。
我正在使用 iterm 和 zsh 以防万一。
我的终端/VS Code 集成终端有问题。当我更改目录时,某些目录具有绿色背景,这很烦人。而且我不知道如何禁用它。我知道.zshrc我可以禁用 ls 中的颜色,DISABLE_LS_COLORS="true"但这不适用于cd命令。
在默认终端中,它是相对可读的,但在 VS Code 中它是不可读的。有什么帮助吗?
我在 Windows 10 上使用带有 WSL(Linux 的 Windows 子系统)的超级终端。我有 wsl 默认为 zsh 但每当我运行 npm 或节点时,我都会收到“zsh:未找到命令:节点”或 npm。要解决这个问题,我必须输入“bash”让终端切换到 bash,然后输入“zsh”切换回来。在该节点和 npm 命令工作之后。
请帮忙!我尝试查看现有帖子,但没有找到与此问题相关的任何内容。
提前感谢您的帮助!
我正在通过终端设置我的 Heroku 配置变量,并收到此错误:
zsh:在“&”附近解析错误
我的 zsh 版本是 5.7.1 平台:Mac Mojave
这是我正在运行的命令:
heroku config:set vidly_db=mongodb://vidlyuser:mypassword@vidly-shard-00-00-yyjmw.mongodb.net:27017,vidly-shard-00-01-yyjmw.mongodb.net:27017,vidly-shard-00-02-yyjmw.mongodb.net:27017/test?ssl=true&replicaSet=vidly-shard-0&authSource=admin&retryWrites=true
Run Code Online (Sandbox Code Playgroud) 一切正常,但我注意到正则表达式运算符=~并没有真正起作用。
例如,如果我想从路径中提取 JSON 文件的文件名,我会在 bash 中得到正确的结果,但在 zsh 中却没有。
IE
bash -s
[[ "/a/b/c/file.json" =~ ([[:alnum:]\-]+)\.json$ ]] && echo ${BASH_REMATCH[1]}
Run Code Online (Sandbox Code Playgroud)
工作并产生,file但在 zsh 中同样的事情只是打印一个空行。
有谁知道为什么以及如何解决这个问题?我是否必须以某种方式启用正则表达式支持?