在尝试调试我的fish shell中的提示问题时,我读到nextd-forward-word函数使用“-f repaint”参数调用命令行内置函数。
我根本无法理解它的作用。
“commandline -f”的文档说“将readline函数注入读者”,这是什么意思?
我甚至不确定这里的“readline”是什么。它是GNU C库吗?假设它是,我在GNU readline文档中找不到任何提及“重绘”的内容。
你能解释一下吗?
“commandline -f”的文档说“将readline函数注入读者”
简单来说,它是fish的命令行阅读器模块的命令。 (这里的文档有点行话,是的)
因此,commandline -f repaint
告诉鱼“重新粉碎”提示。这意味着它将再次执行fish_prompt,fish_mode_prompt和fish_right_prompt函数,并重绘它们的输出。
在nextd-or-forward-word
的情况下,它会执行repaint
,因此提示符的$ PWD显示会更新。如果它不这样做,nextd
会将你移动到另一个目录,但由于你没有execute
d命令行中的正常命令,提示将保持不变。每次输入后重绘都不可行,因为提示可能需要一段时间。
它是GNU C库吗?
如果鱼使用GNU“readline”库,这将是一件事。因此,鱼内部使用术语“readline”以及与阅读线有关的事情,并且它正在泄漏到文档中。