终端自动完成无法正常工作

Rav*_*ina 82 command-line ubuntu-minimal auto-completion

如果我apt-g在 hit 之后开始输入命令tab,shell 会完成命令 to apt-get,但对于命令的第二部分install,如果我输入一些字符,如instahit tab,则不会完成它install

另一个例子:在我输入后,sudo击打tab并没有完成任何事情。例如:sudo apt-ge[ tab] 什么都没有。

我使用 mini iso(40MB 网络安装程序)安装了 Ubuntu,所以也许我错过了一个配置!

我已将此代码添加到我的.bashrc但仍然不起作用:

if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
Run Code Online (Sandbox Code Playgroud)

我还检查了 的许可,.bashrc它是-rw-r--r--.

我还.bashrc使用source .bashrc将更改应用于新环境但仍然没有影响。

我使用xfce4-terminal所以我认为它可能是终端而不是 bash。

但编辑:

~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
Run Code Online (Sandbox Code Playgroud)

并改变:

<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>
Run Code Online (Sandbox Code Playgroud)

到:

<property name="&lt;Super&gt;Tab" type="string" value="empty"/>
Run Code Online (Sandbox Code Playgroud)

也没什么区别。

αғs*_*нιη 121

bash-completion 是一组 bash 脚本,可为特定命令启用自定义完成。

这不仅适用于文件和目录,还适用于例如命令。所以你输入部分命令,点击Tab我们会自动完成命令。

安装

第 1 步:安装 bash-completion

$ sudo apt-get install bash-completion
Run Code Online (Sandbox Code Playgroud)

如果我们通过以下命令重新安装它,有时它会起作用:

$ sudo apt-get install --reinstall bash-completion
Run Code Online (Sandbox Code Playgroud)

第 2 步:在您的.bashrc文件中启用 bash-completion

打开您的gedit ~/.bashrc,如果这些内容不存在,请将它们添加到它的末尾并保存。

$ sudo apt-get install bash-completion
Run Code Online (Sandbox Code Playgroud)

重要提示:更改文件后,您需要 ~/.bashrc使用source ~/.bashrc或重新打开终端。现在应该修复了。

  • 完成突然停止为我工作,上述步骤不能解决问题。关于如何解决问题的任何想法?在 Ubuntu 16.04 上 (4认同)
  • 我想确认将上述代码块添加到 ~/.bashrc 文件确实对我有用。只有一个评论;你真的不需要注销并再次登录以使其工作(你可能不想终止你的工作),你可以运行`source ~/.bashrc`。 (2认同)
  • 第 2 步对我来说是这样的。或者从`/etc/skel/.bashrc`获取模板 (2认同)

小智 35

如果您的情况是终端选项卡在 Xfce 下不起作用,则解决方案如下:

  1. 打开应用程序菜单>设置>窗口管理器
  2. 单击“键盘”选项卡。
  3. 清除“为同一应用程序切换窗口”设置。

窗口管理器屏幕截图如何清除同一应用程序的切换窗口

我在这里找到了解决方案。

  • 截至 2018 年 5 月,仍然是我需要的解决方案。 (2认同)

小智 5

您也可能处于不支持自动完成的 shell(例如:Bourne Shell | SH)。如果你想要 BASH 自动完成,你需要切换 shell,使用命令对 BASH (Bourne Again SHell) 说

chsh -s /bin/bash
Run Code Online (Sandbox Code Playgroud)

来源:Ubuntu Wiki - 更改 Shell