Я пытаюсь написать псевдоним для cd !!:1, который берет второе слово предыдущей команды и переходит в каталог с этим именем. Например, если я наберу
rails new_project
cd !!:1
вторая строка будет перенесена в каталог «new_project».
Поскольку !!: 1 неудобно печатать (хотя он и короткий, для него требуются три клавиши SHIFT на противоположных сторонах клавиатуры, а затем версия клавиши без SHIFT, которая была набрана дважды SHIFT), я хочу просто напечатать что-нибудь как
cd-
но поскольку !!:1 оценивается в командной строке, я (ОБЯЗАТЕЛЬНО) не могу просто сделать
alias cd-=!!:1
или я бы сохранил псевдоним, содержащий жестко закодированный «new_project». Так что я попытался
alias cd-='!!:1'
Проблема в том, что !!:1 НИКОГДА не оценивается, и я получаю сообщение о том, что каталог с именем !!:1 не существует. Как я могу создать псевдоним, в котором подстановка истории оценивается ВО ВРЕМЯ ВЫДАЧИ КОМАНДЫ алиаса, а не тогда, когда я определяю псевдоним, и не никогда?
(Я пробовал это как в bash, так и в zsh и получил одинаковые результаты в обоих.)