"commandline -f repaint" 在 fish shell 中是什么意思?

what does "commandline -f repaint" in fish shell?

在尝试调试我的鱼 shell 中的提示问题时,我了解到 nextd-or-forward-word 函数使用“-f repaint”参数调用命令行内置函数。

我根本无法理解它的作用。

"commandline -f" 的文档说 "inject readline functions into the reader",这是什么意思?

我什至不确定这里的 "readline" 是什么。它是 GNU C 库吗? 假设是这样,我在 GNU readline 文档中找不到 "repaint" 的任何提及。

你能给我解释一下吗?

The documentation for the "commandline -f" says it "inject readline functions into the reader"

简单来说就是fish命令行reader模块的命令。 (这里的文档有点专业术语,是的)

所以 commandline -f repaint 告诉 fish "repaint" 提示。这意味着它将再次执行 fish_prompt、fish_mode_prompt 和 fish_right_prompt 函数,并重绘它们的输出。

nextd-or-forward-word 的情况下,它 repaint 所以提示的 $PWD 显示得到更新。如果它不这样做,nextd 会将您移动到不同的目录,但由于您没有在命令行中 executed 一个普通命令,提示将保持不变。每次输入后重新绘制是不可行的,因为提示可能需要一段时间。

Is it the GNU C library ?

如果 fish 使用它,这将是 GNU "readline" 库会做的一件事。所以 fish 在内部也使用术语 "readline" 来表示与阅读行有关的事情,并且它正在泄漏到文档中。