Как повторить последнюю часть предыдущей команды?

Я использую zsh с картой oh-my-zsh Робби Рассела. Как создать ярлык или что-то повторить последнюю часть команды?

например, если я набираю:

mv something in/this/difficult/to/type/directory

есть ли способ легко получить это: in/this/трудный /to/type/directory?

Ответ 1

Я просто тестировал, и кажется, что вы можете сделать это так же, как в bash !$.

Ответ 2

!$ дает вам последний параметр предыдущей команды.

Пример:

$ echo hello world
hello world
$ echo !$
echo world
world

Ответ 3

!* дает вам ВСЕ аргументы последней команды.

Пример:

% echo hello world  
hello world

% echo !*  
(expands to)-> % echo hello world
hello world

Ответ 4

add bindkey '\ e.' insert-last-word к вашему.zshrc

- sp3ctum, в комментарии здесь

Ответ 5

Я тоже натолкнулся на это - я всегда использовал Alt. для insert-last-word в bash. Найден, где oh-my-zsh переопределяет это.

В lib/key-bindings.zsh закомментируйте это, и он должен работать, как в bash:

bindkey -s '\e.' "..\n"

Ответ 6

Если вы находитесь в bash или zsh, вы можете использовать ! оператор для восстановления аргументов предыдущей команды:

Если взять: echo abcd в качестве примера

  • !$ - последний аргумент: d
  • !:* - все аргументы: abcd (можно сократить !*)
  • !:1 - первый аргумент: a (тот же, что и !^)
  • !:1-3 - аргументы от первого до третьего: abc
  • !:2-$ - аргументы от второго до последнего: bcd

Этот последний вопрос ответит на вопрос, вы можете взять последнюю часть своей команды.

Примечание: $:0 - последняя выполненная команда, здесь это будет эхо в нашем примере

Ответ 7

<esc>. также работает из коробки с zsh и oh-my-zsh.