helm-mode 影响了 let* 函数的行为

(let* ((alias (completing-read
		 "hello:"
                     nil nil nil)))
(message "hello world:%s" alias))

这行代码在开启跟关闭helm-mode情况下是两个不同的行为。

当minibuf直接回车时, helm-mode开启时 “hello world” 不会输出。关闭时一切正常。

不知道有人遇到过没。。

这样吗?

不是,你不要输入内容(dfdfdfdf),提示符出来后,直接回车看看

没有影响到 let*,只影响到 completing-read,helm-mode 影响 RET 这个按键,要提交空字符串,使用 C-RET 或 M-RET,对应命令 helm-cr-empty-string。

确实是这样的。但是还是有点疑问。 let*的body不是总是执行的吗?为啥completing-read可以让他提前跳出呢?

completing-read 发生异常提前退出了,类似于按了 C-g。helm 里没选项时按 RET 表示退出,此时跟 C-g 作用一样。

1 个赞