Как может я использовать!! в псевдониме zsh

Общий путь к тому, чтобы сделать вещи как это состоит в том, чтобы снабдить префиксом имя файла ./.

zip foo.zip ./-foo

Эта техника работает большинство других утилит, которые принимают имя файла как аргумент.

3
09.04.2015, 01:36
1 ответ

!! расширение истории . Первый ! начинает расширение истории; !! имеет разработчик событий , что означает предыдущую команду.

Вы можете получить доступ к истории команды через и истории встроенных встроек и через истории .

С - Vimgrep имеет смысл только с Ag , ваш псевдоним будет более полезен, если он применяется к последнему AG . Вы можете найти команду AG AG , как это:

${${(M)history:#ag *}[1]}

Кроме того, вам нужно ввести - Vimgrep в команду.

alias edit-last='vim -q<(eval "${${(M)history:#ag *}[1]} --vimgrep")'

Последнее команда Ag больше не имеет смысла, если вы изменили текущий каталог. Это трудно обнаружить. Вместо этого вы можете захотеть принять приемлемые команды. Это не идеальный тест конечно.

edit-last () {
  local cmd
  setopt local_options extended_glob
  for cmd in $history; do
    case $cmd in
      ((ls|(cvs|git|hg|svn) status)(| *)) :;;
      ("ag "*) vim -q<(eval "$cmd --vimgrep"); return;;
      (edit-last) :;;
      (*) echo >&2 "The previous ag command is too old."; return 125;;
    esac
  done
}
2
27.01.2020, 21:27

Теги

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