gpt4 book ai didi

bash - emacs + '=' 之后的 comint-dynamic-complete-filename

转载 作者:行者123 更新时间:2023-11-29 09:11:45 25 4
gpt4 key购买 nike

编辑 Bash 脚本我想为变量分配文件名。

例如输入文件=foo.txt

与标准。 settings 如果不先在“=”后插入一个空格,我就无法完成文件名。

有什么解决办法吗?

最佳答案

首先,自 Emacs 24.1 以来,comint-dynamic-complete 已经过时了。替换函数是 completion-at-point

现在,如果您开始查看 completion-at-point 在 shell 脚本缓冲区中实际执行的操作,您最终会以 comint 告终。特别是,函数 comint--match-partial-filename 看起来很有希望解释您所描述的行为。

如果我没看错的话,这里的问题是“=”被认为是文件名的有效部分,至少在类似 POSIX 的系统上是这样(参见变量 comint-file-name-chars ).因此,完成机制正在尝试完成它显然找不到的文件名“inputfile=/...”。

如果你从不在你的文件名中使用“=”(或者你很少使用它以至于工作完成超过其他缺点),你可能需要考虑做一些像 (setq comint-file-name-chars "[]~/A-Za-z0-9+@:_.$#%,{}-") 在 shell 脚本模式 Hook 中(如果您使用的是 POSIX 系统;在 Windows 上看起来略有不同)。

希望对您有所帮助。

关于bash - emacs + '=' 之后的 comint-dynamic-complete-filename,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40772530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com