我无法在交互式命令模式下输入空格

我无法在交互式命令模式下输入空格

一个非常奇怪的情况。如果我输入交互式命令 - 在这种情况下taskshnslookup我无法输入空格。例如:

tasksh> add "my new task"

变成

tasksh> add"mynewtask"

自然是行不通的。我想这可能与此有关,tasksh但后来我nslookup在交互模式下检查了 - 这是同一件事。这种情况发生在 Linux 上4.6.7-1-MANJARO,但不会发生在 OpenSUSE Leap 42.1 上。

我应该如何解决这个非常令人讨厌的事情?

我尝试运行不同的终端(gnome-terminal、xfce4-terminal、xterm),它给出了相同的结果。

答案1

最可能的解释是您不小心绑定了Space一个在配置文件之一中没有可见效果的命令。

检查 shell 初始化文件中的stty命令。这至少会直接影响依赖终端原始行编辑器的程序,并且可能间接影响带有像样行编辑器的程序,因为它们试图与 stty 设置保持兼容。

如果问题仅出现在某些程序中,则有问题的配置可能是阅读线图书馆。该库由 bash 和许多其他程序使用。如果该密钥在 bash 中有效,但在其他使用 readline 的程序中无效,则可能是因为 bash 覆盖了它。 readline的配置文件是.inputrc

如果您只在 bash 中遇到问题,请检查您的.bashrc(这是任何与终端相关的配置应该去的位置)和其他 bash 配置文件(以防配置位于错误的位置)。


在评论中,您提到~/.inputrc包含

Space: magic-space

magic-space是一个 bash 命令。其他程序不明白这一点。要么将此设置作为 bash 的条件:

$if Bash
Space: magic-space
$endif

或者从中删除此设置.inputrc并在其中定义它.bashrc

bind 'Space: magic-space'

相关内容