标签: oh-my-zsh

`time echo`没有输出

我正在使用 Mac,我正在尝试为命令执行计时。

如果我做

time echo
Run Code Online (Sandbox Code Playgroud)

它没有任何输出

但如果我这样做

time ls
Run Code Online (Sandbox Code Playgroud)

它确实给了我时间函数的输出

知道为什么会这样吗?

更新:原来是因为我正在使用 zsh,并且oh-my-zsh已安装。它在 bash 中运行良好,但在 zsh 中没有输出。知道为什么吗?

zsh time oh-my-zsh

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

Zsh 图标在 urxvt 中损坏

所以我目前正在使用 manjaro linux 并且我正在使用 urxvt 作为我喜欢的终端,所以在这一切开始之前切换终端不是一种选择,对不起,如果我很粗鲁。

我安装了 zsh 作为我的默认 shell,并通过 oh-my-zsh 添加了主题 robbyrussell。起初一切正常,一切正常,但更新后我的图标坏了。特别是(如果您熟悉主题)箭头图标坏了,并且与所有其他主题中的所有图标相同。

此问题仅在 urxvt 上发生,因为当我尝试使用其他终端(例如 sterminal)时,主题有效。

您可以在此处看到的一些屏幕截图 这就是它的外观(从 sterminal 截取的屏幕截图)

这就是它的外观(截取自 rxvt)

我一直在 Reddit、github 存储库中寻求帮助,例如 oh-my-zsh 和 robbyrussell 官方存储库,但似乎没有人帮助我,所以我真的希望你们能帮助我。

以下是有关我的操作系统和终端的一些信息:

URXVT Version 9.22
Operating System : Manjaro i3 4.12.24-1
No Desktop Envoirment
i3wm as window manager
Run Code Online (Sandbox Code Playgroud)

我正在为我的 zshrc 文件使用默认的 oh-my-zsh 配置,并使用 manjaro i3 的默认 Xreources,您可以在此处找到。如果您需要更多信息,请告诉我。任何帮助将不胜感激!

zsh rxvt oh-my-zsh manjaro

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

如何附加/扩展 zshell 补全?

我正在将 zsh 与 oh-my-zsh 一起使用。不幸的是,oh-my-zsh 不使用文件~/.ssh/config进行主机名自动完成(例如,请参见问题 #1009)。

这可以通过以下代码轻松存档:

[ -r ~/.ssh/config ] && _ssh_config=($(cat ~/.ssh/config | sed -ne 's/Host[=\t ]//p')) || _ssh_config=()
zstyle ':completion:*:hosts' hosts $_ssh_config
Run Code Online (Sandbox Code Playgroud)

但是,如果我将上述命令添加到我的~/.zshrc文件中,~/.ssh/known_hosts则文件中定义的所有其他主机名来源(如)都将~/.oh-my-zsh/lib/completion.zsh被覆盖。

如何在我的文件中附加新的完成规则?':completion:*:hosts'~/.zshrc

ssh zsh hostname autocomplete oh-my-zsh

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

使用 oh-my-zsh 选项卡自动完成重音字符不起作用

我无法正确显示包含重音字符的自动完成文件名,例如ã在我的 shell 配置zshoh-my-zsh 中

我创建了一个文件名cão.txt来演示这个问题。如果你有兴趣,那就是dog葡萄牙语。

因此,当我尝试像 那样自动完成时cat c<tab>,会发生这种情况:

% cat ca<0303>o.txt
hi dog
Run Code Online (Sandbox Code Playgroud)

echo $0给我:-zsh

但是,如果我去一个“普通”zsh会话,完全相同的自动完成工作正常:

% zsh
% echo $0
zsh
%  cat cão.txt
hi dog
Run Code Online (Sandbox Code Playgroud)

我的locale是这样的:

LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)

LANG变量我试过它是空的,"en_US.UTF-8"还有"pt_PT.UTF-8"。此外,我locale在进入“普通”zsh会话之前和之后仔细检查了设置是否完全相同。

此外,它在默认终端 OSX 应用程序和 iTerm2 中的工作方式相同。

我正在使用 zsh 版本5.0.7

这里是我的.zshrc文件,以及我使用的其他点文件。

我已经尝试oh-my-zsh …

zsh autocomplete oh-my-zsh

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

使用 zsh + Prezto 更改目录颜色

我使用Prezto + zsh 作为我的外壳。我想在我的目录中更改目录的颜色ls

例如,这是我目前拥有的:

我糟糕的 ls 列表

显然,这并不好玩,因为我几乎无法阅读我的目录,因为蓝色太深了。我想把它改成白色或橙色或更轻的东西。

这种深蓝色仅适用于目录。文件以漂亮的白色文本显示。

我必须在哪里找到什么设置来改变它?


尝试的解决方案:

我尝试添加

eval $(dircolors -p | sed -e 's/DIR 01;34/DIR 01;36/' | dircolors /dev/stdin)
Run Code Online (Sandbox Code Playgroud)

到我的zshrc,但现在在加载我的提示时出现此错误:

块引用

bash zsh oh-my-zsh prezto

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

自定义 zsh 自动完成

我想为 pytest 编写一个 zsh 完成。

我从哪里开始?我正在使用 oh-my-zsh。

在 .zshrc 中:

fpath=($HOME/.mycompletions $fpath)
autoload -U compinit && compinit -u
Run Code Online (Sandbox Code Playgroud)

在 $HOME/.mycompletions/_pytest 中:

#compdef pytest

_pytest()
{
    cur="${COMP_WORDS[COMP_CWORD]}"
    COMPREPLY=(`pytestcomplete ${cur} 2>/dev/null`)
}
complete -o nospace -F _pytest py.test
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是正确的吗?

现在我“只”需要编写pytestcomplete脚本。

返回值应该是什么样的?如何将已完成的部分交给脚本?

即如果用户这样py.test<TAB>做应该首先完成文件。如果这样做,py.test tests/my.test.py<TAB>它应该完成类名。如果这样做,py.test tests/my.test.py::TestClass<TAB>它应该完成方法名称。

要从 pytest 中获取信息,可以使用--collect-only. 目前唯一的问题是 zsh 和完成脚本之间的来回。

这可以像这样完成还是我需要编写一个 oh-my-zsh 插件?

zsh autocomplete oh-my-zsh

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

从 zsh 选项卡完成中删除颜色

我不想在 zsh tab-completion 的建议中看到颜色。他们让我的阅读变得更加困难。我怎样才能做到这一点?

这是我的.zshrc

#           _
#   _______| |__
#  |_  / __|  _ \
#   / /\__ \ | | |
#  /___|___/_| |_|
#

# install oh-my-zsh
[ ! -d ~/.oh-my-zsh ] && git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
# install zsh-autosuggestion
autosuggestions="/home/enan/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh"
[ ! -f "$autosuggestions" ] && git clone https://github.com/zsh-users/zsh-autosuggestions $HOME/.zsh/zsh-autosuggestions
[ -f "$autosuggestions" ] && source "/home/enan/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh"

# oh-my-zsh config
export ZSH=/home/enan/.oh-my-zsh
ZSH_THEME=""
DISABLE_LS_COLORS="true"
DISABLE_AUTO_TITLE="true"
export UPDATE_ZSH_DAYS=13
source $ZSH/oh-my-zsh.sh
plugins=( git )

bindkey '^P' …
Run Code Online (Sandbox Code Playgroud)

colors zsh autocomplete oh-my-zsh

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

如何正确地使自定义 zsh 完成“正常工作”?

如果我在这里做了一些愚蠢的事情,请原谅我,文档很大而且搜索还没有找到任何东西。

我正在尝试为我的自定义脚本创建 shell 完成fab。对于 bash 来说,这很容易,只需将它们放入即可/etc/bash_completion.d工作。但是,天哪,zsh 是 PITA 吗...

我有完成功能_fab,当使用compdef _fab fab. 我把它放在/usr/share/zsh/vendor-completions/_fab已经在我的$fpath. 该文件#compdef fabcompdef _fab fab. 看起来挺好的:

$ type _fab
_fab is an autoload shell function
Run Code Online (Sandbox Code Playgroud)

但是每当我启动一个新的 shell 时,fab补全都不起作用(来自 的其他函数vendor-completions,如_docker,很好)。compinit针对该特定外壳修复了此问题。我发现rm ~/.zcompdump ~/.zcompdump-$(hostname)-5.1.1; compinit它可以永久工作(5.1.1 = 我的 zsh 版本)。

问题:

  1. 什么以及何时读取~/.zcompdump以设置初始完成?
  2. man zshall 说:

    下一次调用 compinit 将读取转储文件而不是执行完全初始化。

    如果是这样,compinit在我删除之前不会修复我的完成~/.zcompdump,对吗?我错过了什么吗?

  3. ~/.zcompdump-$(hostname)-5.1.1 …

ubuntu zsh autocomplete oh-my-zsh

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

zsh:无论什么命令都完成当前目录中的文件

例如,当我只想在没有 makefile 的情况下制作 cfile 时:

$ make a<tab>
a1.c  a2.c  a3.c  ...
Run Code Online (Sandbox Code Playgroud)

但似乎 zsh 会检测到该命令,然后当我点击选项卡时什么也不完成。

它在仅列出所有内容的 bash 上运行良好。

有像bash那样的方法吗?

我的操作系统是 macOS mojave 和 zsh 5.7.1。

zsh autocomplete oh-my-zsh macos

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

如何手动将命令添加到 zsh 的自动建议插件?

zsh有一个很棒的自动建议功能(通过插件),它在终端中作为一种类型记住,然后在下一次输入相同命令的实例中提供帮助。

我在记事本中存储了大约 1000 行命令,这对我的所有项目都很有用。

有没有一种方法可以手动将所有这 1000 行命令添加到zsh自动建议功能中,而无需第一次输入?

command-line zsh autocomplete oh-my-zsh

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

标签 统计

oh-my-zsh ×10

zsh ×10

autocomplete ×7

bash ×1

colors ×1

command-line ×1

hostname ×1

macos ×1

manjaro ×1

prezto ×1

rxvt ×1

ssh ×1

time ×1

ubuntu ×1