Как запустить предыдущую уникальную команду в оболочке Emacs (без повторов)?

9

В оболочке Emacs есть команда, похожая на, M-pно которая пропустит повторные команды? То есть он пойдет к следующей другой команде. Аналогично обычному терминалу Linux.

Так что, если бы я должен был бежать:

ls
./script
./script
./script
make

и нажмите M-pтри раза, я хочу, чтобы перейти к команде ls.

Или, в качестве альтернативы, как я могу определить такую ​​команду?

Антон
источник

Ответы:

7

Оболочка вы получаете от M-x shellоснована на comint, так что вы можете установить comint-input-ignoredupsдля tтого , чтобы получить поведение , которое вы хотите. В справке даже упоминается Bash:

comint-input-ignoredups - это переменная, определенная в `comint.el '.

Документация:

Если не ноль, не добавляйте ввод, соответствующий последнему на входном кольце.

Это отражает необязательное поведение bash.

Эта переменная является локальной для буфера.

Вы можете настроить эту переменную.

Омар
источник
офигенно, именно то, что я искал, спасибо!
Антон
1

Вы также можете использовать M-x comint-dynamic-list-input-ringи вызывать C-c C-l. Вы также можете установить, C-h v comint-input-ignoredupsчтобы tвидеть уникальные команды только в списке выше.

aartist
источник