相关疑难解决方法(0)

我可以让我的 shell 历史记录通配符如何扩展吗?

如果我运行:

$ ls *
foo bar buzz
$ history | tail -1
ls *
Run Code Online (Sandbox Code Playgroud)

您可以看到,在我的 shell 历史记录中,它记住的是我运行的ls *而不是ls foo bar buzz. 理想情况下,我想将两者记录在不同的历史记录中。当我想知道“文件 foo 到底发生了什么事情?”时,如果能够rm *通过搜索历史记录并找到 'foo'来返回并找出我在错误的目录中所做的事情,那就太好了。

我对 zsh 和 bash 的解决方案感兴趣。

shell bash command-history zsh wildcards

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

zsh 历史 - 完整路径

假设我在 zsh 中执行以下操作

cd ~
cd dir1
cd dir2
cd dir3
evince foo.pdf
Run Code Online (Sandbox Code Playgroud)

zsh 在其历史文件中写入完全相同的内容。

现在我的问题是是否有可能

cd ~
cd ~/dir1
cd ~/dir1/dir2
cd ~/dir1/dir2/dir3
evince ~/dir1/dir2/dir3/foo.pdf
Run Code Online (Sandbox Code Playgroud)

在 zsh 历史中。即 zsh 只记住完整路径。

command-history zsh

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

如何在 Zsh 命令行中展开所有变量?

在之前针对 bash 的问题中,我问如何在命令行中扩展相对路径并使用制表符补全?

我喜欢 @Mikel 的答案,其中提到使用Ctrl+ Alt+e来扩展所有变量,并且我经常使用它。

从那时起,我已经切换到,zsh虽然我可以键入$PWD并按Tab以展开当前目录的路径,但如果我键入类似的内容$PWD/.profile并按Tab它不会展开。

我已经阅读了类似的问题,并且看到了有关扩展别名的答案,以及如何通过键入变量并按来扩展变量,但没有什么与在 中按+ +Tab相同 。CtrlAltebash

是否有某种方法允许转义序列(例如Ctrl+ Alt+)e展开正在输入的命令行中的所有变量zsh?

command-line zsh environment-variables variable

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