Заменить аргумент N в предыдущей команде

284
Palpatim

Я недавно перешел на ZSH, и я хотел бы стать более эффективным при замене аргументов в командах. В частности, я хотел бы заменить аргумент «N» в самом последнем вызове команды «cmd». Я не хочу знать, каков был предыдущий шаблон аргумента, я просто хочу заменить весь аргумент.

Например, скажем, у меня есть эта команда где-то в моей истории,

foo arg-1 arg-2 arg-3 

И я хочу заменить первый позиционный аргумент на «arg-replace» при моем следующем вызове. Просматривая zshexpn, я думал, что мог сделать что-то вроде:

!foo:1:s/.*/arg-replaced/ [TAB] 

С ожидаемыми результатами:

foo arg-replaced arg-2 arg-3 

Но это приводит к ошибке "zsh: substitution failed".

Я посмотрел на вопрос « Как заменить конкретный аргумент предыдущей команды в zsh? », И мне кажется, что это почти то, что я хочу, за исключением того, что он заменяет только предыдущую команду, а не ищет в истории мой шаблон команды. Я чувствую, что это должно быть чем-то поддерживаемым расширением zsh по умолчанию, но я проклят, если смогу понять, как это сделать.

2

0 ответов на вопрос

Похожие вопросы