标签: zsh

如何在 ZSH 提示中输出当前历史事件编号(%! 或 %h)-1?

在我的 ZSH 提示中,我希望能够输出当前历史事件编号(%!%h)-1

如果当前历史事件编号是 !256,我想将其减一并在我的提示中输出结果(即 !255)。

这是它现在的样子以及我希望它的样子:

我当前 ZSH 提示符的屏幕截图

下面是我当前的 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)

interpolation zsh prompt type-conversion command-prompt

1
推荐指数
1
解决办法
358
查看次数

Python:别名为 python3

我尝试将 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

python linux zsh zshrc

1
推荐指数
1
解决办法
5035
查看次数

zsh PATH 的奇怪行为

我今天只是鼓励 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 zshrc osx-yosemite

1
推荐指数
1
解决办法
1183
查看次数

ZSH:获取 for 循环的基名

我正在尝试获取基本名称(没有文件扩展名),以便我可以使用正确的文件名快速处理音频文件目录(.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 的东西。

有任何想法吗?

谢谢!

for-loop zsh

1
推荐指数
1
解决办法
2262
查看次数

Mac 上的“生成依赖项”给出 -->“make: lsb_release: Command not found”错误

$ 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

macos terminal zsh makefile gnu-make

1
推荐指数
1
解决办法
4637
查看次数

如何在 Mac 上添加-apt-repository ppa

我需要添加一个 ppa 但我在 Mac 上,我怎么能sudo add-apt-repository ppa:author-name/example.js在 Mac 上呢?。

我正在使用 iterm 和 zsh 以防万一。

linux macos bash zsh iterm2

1
推荐指数
1
解决办法
6827
查看次数

某些目录的绿色背景 [Oh My Zsh, Zsh]

我的终端/VS Code 集成终端有问题。当我更改目录时,某些目录具有绿色背景,这很烦人。而且我不知道如何禁用它。我知道.zshrc我可以禁用 ls 中的颜色,DISABLE_LS_COLORS="true"但这不适用于cd命令。

在默认终端中,它是相对可读的,但在 VS Code 中它是不可读的。有什么帮助吗?

终端 VS代码

macos terminal zsh oh-my-zsh

1
推荐指数
1
解决办法
1448
查看次数

未找到 zsh 节点。必须切换到 bash 然后再次切换到 zsh

我在 Windows 10 上使用带有 WSL(Linux 的 Windows 子系统)的超级终端。我有 wsl 默认为 zsh 但每当我运行 npm 或节点时,我都会收到“zsh:未找到命令:节点”或 npm。要解决这个问题,我必须输入“bash”让终端切换到 bash,然后输入“zsh”切换回来。在该节点和 npm 命令工作之后。

请帮忙!我尝试查看现有帖子,但没有找到与此问题相关的任何内容。

提前感谢您的帮助!

bash zsh npm windows-subsystem-for-linux

1
推荐指数
1
解决办法
1215
查看次数

设置 Heroku 配置变量时在“&”附近解析错误

我正在通过终端设置我的 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)

zsh heroku

1
推荐指数
1
解决办法
3246
查看次数

为什么 zsh 没有正确执行我的正则表达式?

我开始使用zsh一段时间(使用此处描述的brew 安装)。

一切正常,但我注意到正则表达式运算符=~并没有真正起作用。


例如,如果我想从路径中提取 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 中同样的事情只是打印一个空行。


有谁知道为什么以及如何解决这个问题?我是否必须以某种方式启用正则表达式支持?

regex zsh

1
推荐指数
1
解决办法
787
查看次数