Intereting Posts
Что включать в RPM, созданный из пакетов python Возможно ли переключение рабочего пространства через Ctl + Alt + Arrow NON CYCLIC? Возобновите загруженный файл aria2 по файлу * .aria2 Logrotate: «log не нужно вращать» почему? Как получить статус выхода фонового процесса? Будут ли WPA или WEP BT крекеры работать на Galaxy Tab? systemd: остановить процесс загрузки при сбое (на самом деле сделать остановку) Предотвратите прерывание вызова функции SIGINT и дочерних процессов Как определить, является ли устройство SCSI съемным? «Нет такого файла или каталога», как ошибка для неправильной архитектуры Аутентификация с помощью x11vnc: какая разница между -auth и -rfbauth? Как я могу отображать время безотказной работы с отключенным временем спящего режима? Компонент GNOME не работает после замены диспетчера окон Приложения XForwarding из OSX Как просмотреть командную строку процессов, выполненную за последние 10 секунд

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

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

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

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

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

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

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

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

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

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

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