Bash 自动完成

Bash 自动完成

我想要像在 emacs 中那样的完成,如果您正在输入的命令只有一个完成,那么您不需要全部输入。

例如:

package ins

就足够了,而不需要输入整个:

package install

是否有可以实现这一功能的包或脚本?

我正在寻找一种不需要按下 Tab 键而是直接按下 Enter 键并在运行命令之前让脚本自动完成的解决方案。

答案1

我相信fish shell这里应该如此。要安装:

  1. 下载自这里

  2. 然后使用这个教程以协助您学习。

答案2

您需要安装bash-completion。如果已安装,您需要获取它:

source /etc/bash_completion

您可以将其添加到 .bashrc 文件中。您可以在以下位置添加自定义补全/etc/bash_completion.d/

答案3

bash如果软件包已安装,则默认执行此操作,bash-completion只需输入例如

> apt i

按下Tab ↹你就会得到

> apt install

如果有多个匹配项,再按Tab ↹一次将显示它们的列表。例如

> ap

Tab ↹

什么都没发生

Tab ↹

aplay                         apport-bug                    apt                           aptdcon                       aptitude-curses
aplaymidi                     apport-cli                    apt-add-repository            apt-extracttemplates          aptitude-run-state-bundle
apm_available                 apport-collect                apt-cache                     apt-ftparchive                apt-key
apparmor_parser               apport-unpack                 apt-cdrom                     apt-get                       apt-mark
apparmor_status               appres                        apt-config                    aptitude                      apt-sortpkgs
applygnupgdefaults            apropos                       aptd                          aptitude-create-state-bundle  

答案4

如果你的问题是你想要Bash 补全,请参阅帖子终端自动完成功能无法正常工作,否则,如果您需要Enter变得像Tab ↹并且立即执行该命令,那么您需要在您的命令中添加下面的命令~/.bashrc,然后source ~/.bashrc它。

bind 'RET:"\C-i\C-j"'

是;RET的缩写,您也RETURN可以使用它来表示+ 。"\C-M"CtrlM

相关内容