Могу ли я псевдоним `! <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).

  • Как я могу «alias sudo !!»?
  • Как запустить команду в zsh, не нажимая ее на историю текущего сеанса?
  • Как искать историю bash в режиме vi для «foo. * Bar»
  • Преобразование истории в скрипт?
  • Напишите bash_history в файл с меткой времени
  • псевдоним для команды, использующей !! для вызова последней команды
  • Zsh: команды быстрого закладки
  • Показать старые или более старые элементы истории с помощью команды history в zsh
  • Постоянная история Баша между отдельными процессами
  • Как сохранить файл истории cygwin bash на независимых сеансах?
  • Использование! N в сценарии или в интерактивном режиме
  • zsh history: комментируйте опасные команды: `#`
  • Linux и Unix - лучшая ОС в мире.