получить аргументы предыдущей команды внутри скрипта zsh - PullRequest
0 голосов
/ 03 октября 2019

Я хочу разработать функцию в bash, которая будет открывать файл в vim после того, как я запустил скрипт cat в терминале.

cat readme.txt

Теперь я хочу открыть файл в vim. Вместо того, чтобы писать vim readme.txt, я хочу создать функцию vv, которая получит последние аргументы команд (!*) и добавит к ней vim.

function vv() {
    args=$(!*)
    vim $args
}

У меня естьтакже попытался установить в качестве псевдонима:

alias vv="vim !*"

Оба они не будут работать. Есть ли способ получить аргумент предыдущей команды в скрипте zsh?

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Если последний аргумент достаточен, вы можете использовать $_:

vv() {
  vim "$_"
}

Если вы запустите ls -l foo.txt, то vv запустит vim foo.txt

(Еслипоследний аргумент не достаточен, тогда это не поможет)

0 голосов
/ 03 октября 2019

Вам нужно не !*, а !$. Это для Bash, в Zsh это то же самое, я думаю,

...