GNU History Expansion 参考缺少示例,所以我无法判断这是否可能。
这是我想要做的。我跑了cat long/path/to/file1.txt | less
,然后我跑了vim file2.txt
。使用历史扩展,我想跑cat even/longer/path/to/file3.txt | less
但我不想:
- 键入
long/path/to/file1.txt
,因为键入不方便。 - 用数字引用前一个命令;我想用字符串引用它。即使用
!cat...
,但不!-2...
这能做到吗?
这是我尝试过的(没有效果):
!cat:^!cat:1^even/longer/path/to/file3.txt^
这是我的思考过程:
!cat
- 替换以字符串开头的最后一个命令cat
。:^x^y^
-在该命令中 替换x
为y
!cat:1
- 扩展到最后cat
一条命令的第一个参数,即long/path/to/file1.txt
even/longer/path/to/file3.txt
– 扩展文本的替换
这不起作用的一个明显原因是我在扩展中嵌套了扩展:!cat:1
被解释为文字字符串。
我得到这个输出:
long/path/to/file1.txtlong/path/to/file1.txteven/longer/path/to/file3.txt^: No such file or directory