我正在尝试为 cd !!:1 编写一个别名,它采用上一个命令的第二个单词,并更改为该名称的目录。例如,如果我输入
rails new_project
cd !!:1
第二行将 cd 进入“new_project”目录。
由于 !!:1 打字很尴尬(即使它很短,它需要三个 SHIFTed 键,在键盘的相对两侧,然后是键入两次 SHIFTed 的键的未SHIFT版本),我只想输入一些东西像
cd-
但是由于 !!:1 是在命令行上评估的,所以我(显然)不能这样做
alias cd-=!!:1
或者我会保存一个包含硬编码的“new_project”的别名。所以我尝试了
alias cd-='!!:1'
问题在于 !!:1 从未评估过,并且我收到一条消息,指出不存在名为 !!:1 的目录。如何创建一个别名,在我发出别名命令时评估历史替换,而不是在我定义别名时,而不是从不?
(我在 bash 和 zsh 中都尝试过,并且在两者中都得到了相同的结果。)