有没有办法在每次按键时触发自动完成?

有没有办法在每次按键时触发自动完成?

我经常使用自动完成功能。我发现我通常按以下方式使用 bash: 访问 ./pyenv/versions/3.5.3/lib/python3.5/weakref.py

  • 按 。/
  • 点击 pye,按tab(终端自动完成 pyenv)
  • 按 /,按 v,按tab(终端自动完成版本)
  • 3。打tab。终端完成为3.,因为有很多 pyenv 版本。打5,然后tab再打一次。

依此类推,直到到达目的地。

然而,这可以自动化。由于如果存在同名的多个版本,终端不会执行任何操作,因此我们可以有效地自动按下 Tab 键每次按键时

因此,每次,如果可以直接选择自动完成我正在输入的内容,那么自动完成它应该不会有什么问题。

所以问题是:有没有办法模拟tab每次在终端中键入任意键时按下?

答案1

我不知道您是否更喜欢默认使用 bash,但我使用 zsh,并且使用此 zsh 插件的自动完成功能:https://github.com/zsh-users/zsh-autosuggestions

它通过使用您的命令历史记录自动完成来工作。

答案2

很清楚你想要什么,但有几个问题。

首先,Bash 触发补全的机制是通过 tab 触发的。可能有一个映射能够在每次按下字符时输入制表符。但在其他所有地方都会这样做。这同样适用于您可以“破解”的任何脚本。第二个问题是CPU使用率。如果你要输入很多命令,每次都会触发完成。根据要完成的内容,它可能会很快挂起。

这种愿望绝对是不好的做法。把它从你的记忆中抹去。建立更好的层次结构,以便您可以更好地利用该功能。

PS我忘了提及故障。想象一下所有其他的东西,比如 Xk 命令、别名、函数和参数。每次你的 shell 都会尝试猜测文件名。它将变得无法操作。你的想法没有经过深思熟虑。

相关内容