我正在使用 Mac,我正在尝试为命令执行计时。
如果我做
time echo
Run Code Online (Sandbox Code Playgroud)
它没有任何输出
但如果我这样做
time ls
Run Code Online (Sandbox Code Playgroud)
它确实给了我时间函数的输出
知道为什么会这样吗?
更新:原来是因为我正在使用 zsh,并且oh-my-zsh已安装。它在 bash 中运行良好,但在 zsh 中没有输出。知道为什么吗?
所以我目前正在使用 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 与 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
我无法正确显示包含重音字符的自动完成文件名,例如ã在我的 shell 配置zsh和oh-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 …
我使用Prezto + zsh 作为我的外壳。我想在我的目录中更改目录的颜色ls。
例如,这是我目前拥有的:
显然,这并不好玩,因为我几乎无法阅读我的目录,因为蓝色太深了。我想把它改成白色或橙色或更轻的东西。
这种深蓝色仅适用于目录。文件以漂亮的白色文本显示。
我必须在哪里找到什么设置来改变它?
尝试的解决方案:
我尝试添加
eval $(dircolors -p | sed -e 's/DIR 01;34/DIR 01;36/' | dircolors /dev/stdin)
Run Code Online (Sandbox Code Playgroud)
到我的zshrc,但现在在加载我的提示时出现此错误:
我想为 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 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) 如果我在这里做了一些愚蠢的事情,请原谅我,文档很大而且搜索还没有找到任何东西。
我正在尝试为我的自定义脚本创建 shell 完成fab。对于 bash 来说,这很容易,只需将它们放入即可/etc/bash_completion.d工作。但是,天哪,zsh 是 PITA 吗...
我有完成功能_fab,当使用compdef _fab fab. 我把它放在/usr/share/zsh/vendor-completions/_fab已经在我的$fpath. 该文件#compdef fab以compdef _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 版本)。
问题:
~/.zcompdump以设置初始完成?man zshall 说:
下一次调用 compinit 将读取转储文件而不是执行完全初始化。
如果是这样,compinit在我删除之前不会修复我的完成~/.zcompdump,对吗?我错过了什么吗?
~/.zcompdump-$(hostname)-5.1.1 …例如,当我只想在没有 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有一个很棒的自动建议功能(通过插件),它在终端中作为一种类型记住,然后在下一次输入相同命令的实例中提供帮助。
我在记事本中存储了大约 1000 行命令,这对我的所有项目都很有用。
有没有一种方法可以手动将所有这 1000 行命令添加到zsh自动建议功能中,而无需第一次输入?