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

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

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

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

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

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).

  • Как просмотреть все команды с момента последней установки системы (5 месяцев)?
  • ZSH: история поиска по клавишам вверх и вниз?
  • Как использовать команды истории с readonly PROMPT_COMMAND?
  • zsh HISTFILE - все еще читается из ~ / .zsh_history
  • openSuse, linux, chmod, чтобы изменить разрешения
  • Может сохранить историю команд стрелки для ох-my-zsh сузить историю по параметрам / параметрам, указанным в команде
  • Храните два файла истории bash, один с ignoredups, один со всем
  • Невозможно сделать .zhistory символической ссылкой
  • Экспорт истории команд в скрипт командной оболочки
  • Могу ли я гарантировать, что история регистрирует все выполнение?
  • Терминал: используйте другую команду в предыдущем файле
  • Указание числовых диапазонов в истории zsh
  • Linux и Unix - лучшая ОС в мире.