当前位置: 首页>>技术教程>>正文


终端自动完成功能无法正常运行

, , ,

问题描述

如果我在点击Tab后开始输入类似apt-g的命令,那么 shell 程序会完成对apt-get的命令,但是对于命令的第二部分(如install),如果我输入了insta等字符,则点击tab并不能完成安装。

另一个示例:输入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

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

更改后,我也使用source .bashrc来获取.bashrc,以将更改应用于新环境,但仍然没有效果。

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

但是编辑:

~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml

并更改:

<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>

至:

<property name="&lt;Super&gt;Tab" type="string" value="empty"/>

也没有任何区别。

最佳解决方法

bash-completion是一组bash脚本,可对特定命令进行自定义完成。

这不仅适用于文件和目录,还适用于用于命令。因此,您键入部分命令,然后单击Tab,我们将自动完成命令。

Installation

步骤1:安装bash-completion

$ sudo apt-get install bash-completion

有时,如果我们通过以下命令re-installed可以正常工作:

$ sudo apt-get install --reinstall bash-completion

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

打开您的gedit ~/.bashrc,如果那里不存在这些内容,请在其末尾添加并保存。

# enable bash completion in interactive shells
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

重要提示:更改后,您需要使用source ~/.bashrc来获取~/.bashrc的资源或重新打开终端。现在应该修复。

次佳解决方法

如果您的情况是“终端”选项卡在Xfce下不起作用,

解决方法如下:

  1. 打开Application Menu> > Settings Window Manager

  2. 单击Keyboard选项卡。

  3. 清除Switch window for same application设置。

我找到了解决方案Here

第三种解决方法

您可能还处于不支持自动完成的 shell 中(例如:Bourne Shell | SH)。如果要BASH自动完成,则需要切换 shell ,而不是使用命令BASH(Bourne Again SHell)

chsh -s /bin/bash

资料来源:Ubuntu Wiki – Changing Shells

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7534.html,未经允许,请勿转载。