Например, предположим, что я только что скопировал что-то:
mv foo_file.txt ~/to/some/long/path/that/i/do/not/want/to/retype
и я хотел бы использовать замену истории следующим образом:
mv bar_file.txt !!:2
Я удивлен, что zsh не расширяет для меня !!:2
, когда я нажимаю [tab]. В более сложной ссылке на исторический аргумент мне действительно может понадобиться расширение, прежде чем я нажму return, просто чтобы я был уверен, что ссылаюсь на правильный аргумент. Есть ли способ заставить это сделать? (Я ожидаю, что это будет поведение по умолчанию. Это поведение по умолчанию, которое я каким-то образом непреднамеренно отключил или сломал?)
Если zsh не может этого сделать, может bash?
ОБНОВЛЕНИЕ: zsh расширит выражение истории, если оно относится к файлу, но не к каталогу:
mv foo_file.txt foo_bar_file.txt
mv bar_file.txt !!:2[TAB]
Он расширит его, если это просто произвольная строка:
echo one two three four
echo !!:1[TAB]
Но не в том случае, если вы пытаетесь переместить что-то в каталог. Все больше и больше похоже, что это ошибка.
:p
для вывода расширенного выражения истории, а не выполнять команду при нажатии Enter:mv bar_file.txt !!:2:p
. - person chepner   schedule 09.04.2014