Emacs Eshell历史操作(快速字符串替换)不';行不通

Emacs Eshell历史操作(快速字符串替换)不';行不通,emacs,elisp,eshell,Emacs,Elisp,Eshell,我在emacs中使用eshell 在bash中,执行时: ls test ^ls^ll^ 它再次执行最后一个命令,将ls更改为ll,如下所示: ll test 我怎么能在埃舍尔做到? 当我这样做的时候: ls test ^ls^ll^ 或: eshell给出了一个错误: Wrong type argument: stringp, 108 怎么了?谢谢。eshell有内置变量 见: (信息“(eshell)内置) 它认为您需要“$\”,它引用最后一个命令的最后一个参数 如果您没有为eshe

我在emacs中使用eshell

在bash中,执行时:

ls test
^ls^ll^
它再次执行最后一个命令,将ls更改为ll,如下所示:

ll test
我怎么能在埃舍尔做到? 当我这样做的时候:

ls test
^ls^ll^
或:

eshell给出了一个错误:

Wrong type argument: stringp, 108

怎么了?谢谢。

eshell有内置变量

见:

(信息“(eshell)内置)

它认为您需要“$\”,它引用最后一个命令的最后一个参数

如果您没有为eshell安装信息(文档),请访问以下网址:


我认为这是eshell中的一个bug。OP描述的行为与我使用香草Emacs 24.3.1描述的行为相同。我仔细研究了一下,但即使在
(setq eshell handle errors nil)
(setq debug on error t)
等之后,我也很难获得正确的回溯。有人有什么见解吗?eshell文档在历史上很少,但eshell似乎是为了提供上面提到的bash行为而编写的(参见函数
eshell历史参考
)。像这样的文档说eshell快速替换“似乎有问题”(2010年12月)。
Wrong type argument: stringp, 108