Jak uruchomić poprzednie unikalne polecenie w powłoce Emacsa (bez powtórzeń)?

9

Czy w powłoce Emacsa istnieje polecenie podobne do tego, M-pale które pomijałoby powtarzające się polecenia? Oznacza to, że przejdzie do następnego innego polecenia. Podobny do zwykłego terminalu Linux.

Więc gdybym miał uruchomić:

ls
./script
./script
./script
make

i naciśnij M-ptrzy razy, chcę przejść do polecenia ls.

Lub, alternatywnie, jak mogę zdefiniować takie polecenie?

Anton
źródło

Odpowiedzi:

7

Powłoka otrzymasz od M-x shellopiera się na comint, więc można ustawić comint-input-ignoredups, aby tw celu uzyskania żądane zachowanie. Pomoc wspomina nawet o bash:

comint-input-ignoredups to zmienna zdefiniowana w `comint.el '.

Dokumentacja:

Jeśli nie ma wartości zero, nie dodawaj danych wejściowych pasujących do ostatnich na pierścieniu wejściowym.

Odzwierciedla to opcjonalne zachowanie bash.

Ta zmienna jest lokalna dla bufora.

Możesz dostosować tę zmienną.

Omar
źródło
super, dokładnie to, czego szukałem, dzięki!
Anton
1

Możesz także używać M-x comint-dynamic-list-input-ringi wywoływać przez C-c C-l. Można również ustawić C-h v comint-input-ignoredups, aby tzobaczyć unikalne komendy tylko w powyższym wykazie.

Aartist
źródło