为什么按 Super_L+Space bash 会列出 /etc/hosts 的有效内容?

为什么按 Super_L+Space bash 会列出 /etc/hosts 的有效内容?

标题几乎概括了这一点。我有一些(最少的)内容/etc/hosts

该文件看起来像:

# some comment
127.0.0.1  localhost foo bar
1.2.3.4    baz
::1        localhost ip6-loopback ip6-localhost

今天我在输入 bash 时不小心按了 Super_L+Space,它立即向我显示了一些格式类似于输出的内容ls,但列出了该文件的所有功能内容(而不是注释)除了ip4 地址,像这样:

me@host$
::1   localhost      foo             bar
baz   ip6-loopback   ip6-localhost
me@host$ s

s顺便说一下,最后一个提示不是拼写错误:主机列表后的下一个提示看起来完全一样。

我可以轻松地重现该行为。

到目前为止,我已经研究了 KDE Plasma 和终端模拟器的键盘快捷键,但没有与 Super_L+Space 绑定的操作。我的.bashrc也不包含任何相关内容。如果我在终端模拟器以外的任何其他窗口中按该组合,则不会发生任何情况。

bash 历史记录甚至不包含有关该事件的条目。

这里发生了什么?

答案1

这是在提交中引入的 Konsole 特定功能5ba34471 时间回到2012年。

参考:这个超级用户问题


链接的超级用户问题中最初描述的机制的简短摘要如下: Super_L+letter在 Konsole 中发送^X@s<letter>。第一部分通过 readline 键绑定“翻译”为“可能的主机名完成”。 (bind -p显示"\C-x@": possible-hostname-completions)。剩余部分 ( "s<letter>") 将在下一个提示中打印。

相关内容