![使用 zsh 高效编辑命令](https://linux22.com/image/1271460/%E4%BD%BF%E7%94%A8%20zsh%20%E9%AB%98%E6%95%88%E7%BC%96%E8%BE%91%E5%91%BD%E4%BB%A4.png)
假设我使用 CTRL-R,然后输入 tail 来查找上次运行 tail 的时间。
出现的是 tail -F /path/to/log/file-2011-03-07.log
我想要运行的命令是上面的命令,但使用 2011-03-08 而不是 2011-03-07。有没有办法通过命令行使用正则表达式进行替换?
答案1
r 7=8 tail
应该可以。阅读fc
和r
;它们不太为人所知,但对于这种事情非常有用。
没有直接的正则表达式编辑,但如果fc
直接使用,您可以尝试fc -e
一下。(确实,fc -e 'sed -ie s/foo/bar/' command
似乎有效。您可能能够将其包装在函数中。)还可以-m
使用 shell glob 从历史记录中选择命令。