如何在Emacs Shell中运行先前的唯一命令(不重复)?


9

在Emacs Shell中,有没有类似于的命令,M-p但是会跳过重复的命令?也就是说,它将转到下一个不同的命令。类似于常规的Linux终端。

因此,如果我要跑步:

ls
./script
./script
./script
make

然后按M-p三下,我希望它进入ls命令。

或者,如何定义这样的命令?

Answers:


7

您从中获得的外壳M-x shell基于comint,因此可以设置comint-input-ignoredupst以获得所需的行为。帮助甚至提到bash:

comint-input-ignoredups是在comint.el中定义的变量。

说明文件:

如果非零,则不要在输入环上添加与最后一个匹配的输入。

这反映了bash的可选行为。

此变量是局部缓冲区的。

您可以自定义此变量。


太棒了,正是我想要的东西,谢谢!
安东

1

您还可以使用M-x comint-dynamic-list-input-ring和调用C-c C-l。您还可以设置C-h v comint-input-ignoredupst仅在上面的列表中查看唯一的命令。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.