Могу ли я псевдоним `! <Editor>` в bashrc?

Я использую emacs в качестве редактора в командной строке (aliased with alias em='emacs -nw' ) и хотел бы иметь возможность сделать псевдоним для !em чтобы открыть файл, который недавно был открыт в emacs.

Я пробовал alias e='!em' , alias e='${!}em' , alias e='${!em}' , но до сих пор не может найти ничего, что работает.

Я нашел некоторые связанные сообщения об aliasing !! :

псевдоним для команды, использующей !! для вызова последней команды

  • Почему Korn Shell не делает ctrl-r?
  • Напишите bash_history в файл с меткой времени
  • Могу ли я легко найти свою историю на многих экранах?
  • Стойкие аргументы оболочки
  • Как искать историю bash в режиме vi для «foo. * Bar»
  • Почему !! внутри псевдонима не работает?
  • Выполнить строку команд с помощью одного sudo
  • Поиск истории Alt + F2 в среде рабочего стола Cinnamon
  • 2 Solutions collect form web for “Могу ли я псевдоним `! <Editor>` в bashrc?”

    Я не думаю, что расширение истории происходит после расширения псевдонимов, поэтому вам нужно использовать history -p чтобы сделать это явно:

     alias e='eval "$(history -p !em)"' 

    Хотя это не работает ни в этом случае, так как псевдонимы не расширяются после подстановки команды. Но функции работают, поэтому эти двое должны это сделать:

     em() { emacs -nw "$@"; } e() { eval "$(history -p !em)"; } 

    Последнее может быть псевдонимом.

    Если вы, как вы описали, используете псевдоним, то вам не следует пытаться сделать дополнительный псевдоним для! Em. ! вызывает механизм истории оболочки, поэтому команда «! em» повторит последнее использование вашего псевдонима (который, возможно, не последний файл, фактически отредактированный emacs).

    Linux и Unix - лучшая ОС в мире.