我正在使用文件系统路径列表进行完成读取
,例如。 ("~/parent/child""/parent/child")
.
我想屏蔽completing-read/ido-completing-read
的输出,以便它只显示child
,但仍会返回完整路径。
这可能吗?
最诚挚的问候,老鼠
最佳答案
答案:不,这是不可能的,因为完成读取不会考虑字符串的任何语义。
这是可能的,但需要多次调用完成列表。
这个函数的想法是传递一个字符串列表,它可以帮助您从该列表中选择一个字符串。
Completing-list 无法控制字符串包含的内容。它不关心字符串的语义,就像路径一样。它只能看到字符串列表。
因此,为了达到您想要的效果,您可以使用当前目录中的文件列表调用它一次,如果您选择一个目录,首先将其更改为该目录,然后使用该目录中的文件列表等。
如果您想让 pwd 与初始值相同,那么当它返回时,您将再次更改为原始目录。
(cd (concat default-directory
(completing-read "> " (directory-files default-directory ))))
关于emacs - 在 Emacs Lisp 中屏蔽完成读取的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11698924/