我将终端设置为显示目录路径:
但是,它仅对当前命令执行此操作。一旦我运行另一个命令,以前的目录路径就不会显示:
当我输入命令时,我发现这很刺耳,感觉就像终端在“跳跃”给我。我也看不到前面命令的时间戳。是否可以为先前的命令显示路径?
我正在使用 Oh My Zsh 和 iTerm 2
我的 $ZSH 设置为 /home/goldy/.oh-my-zsh
我有这个文件
# $ZSH/functions/run_after_save
function run_after_save {
# my logic here
}
我的 fpath 确实包含函数文件夹:
$ echo $fpath
# many lines omitted for brevity ...
/home/goldy/.oh-my-zsh/functions
但是当我尝试run_after_save
从脚本调用或直接在终端中输入时,我得到:
$ run_after_save
zsh: command not found: run_after_save
有什么线索吗?
这是我尝试放在$ZSH/functions
文件夹下的第一个功能
所以我已经安装了ZSH
:
brew install zsh
然后我安装了oh my zsh
:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
然后我跑了compaudit
,所以插件正确加载:
compaudit | xargs chmod g-w
然后我也安装powerlevel10k
并完成了它的设置:
https://github.com/romkatv/powerlevel10k#oh-my-zsh
关键是,此设置适用于 linux 系统(我ssh
以 root 用户身份访问)但不适Mac M1
用于我作为普通特权用户使用的 linux 系统(这不应该成为问题)。
我可以查明它可能存在的问题~/.zshrc
。
如果我添加docker
到插件中~/.zshrc
,像这样:
...
plugins=(git docker)
source $ZSH/oh-my-zsh.sh
...
然后docker
自动完成工作。但是仅仅通过启动zsh
shell,docker
如果没有添加到这个列表中,插件将不会被加载docker
,即使这$ZSH/oh-my-zsh.sh
是应该做的,加载插件它是自动的内置插件。
我不明白为什么它不起作用,我没有收到任何错误,它只是默默地失败。
所以没有插件在工作(语法突出显示,自动完成),除非我将它添加到plugins
.
谁能帮助我我做错了什么?
我最近将我的两个服务器的域从mdorst.net
更改为mars.mdorst.net
. 现在,当我转到 ssh 时,其中一个会按预期自动完成,而另一个则不会。
$ ssh michael@o<Tab>
自动完成到
$ ssh [email protected]
这就是我想要的。但是,当我输入
$ ssh michael@c<Tab>
它自动完成
$ ssh [email protected]
并将光标放在 m 之后。
我最好的猜测是它知道我输入了以下两个
$ ssh [email protected]
$ ssh [email protected]
之前,想知道是哪一个。非常聪明!除了我不想要这种行为,所以我回过头来.zsh_history
删除了所有出现的curiosity.mdorst.net
,问题仍然存在!
这让我非常困惑,因为我之前也做过opportunity.mdorst.net
,但是当我输入时不会发生这种情况o<Tab>
,只有当我输入时才会发生c<Tab>
。
我怎样才能让它自动完成到正确的域?