2

Я недавно перешел на 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 по умолчанию, но я проклят, если смогу понять, как это сделать.

0