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

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

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

  • Как читать переменные из php-файла в bash
  • Проблема с экранированием параметризованных аргументов
  • Как узнать точное имя утилиты?
  • Запросить пользователя для предложения и сохранить его, не нарушая пространства
  • Можно ли разделить файл и добавить части с одинаковым расширением в один лайнер?
  • Невозможно использовать аргументы для «ls» в bash
  • Я нашел некоторые связанные сообщения об aliasing !! :

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

  • Значение символов стрелок при дублировании / закрытии дескрипторов файла под bash
  • Значение \ 0; в PS1 в .bashrc
  • как добавить пользовательскую опцию в команду mkdir
  • Сообщение об ошибке на терминале, несмотря на использование символа 2>
  • Автоматическое завершение терминала OSX bash - нечетное поведение на двойной вкладке
  • Является ли замена конкретной строки в файле с помощью сценария bash, возможного в VIM или EX?
  • 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 - лучшая ОС в мире.