在 Codecademy 的Command Line Course上,当尝试Alt+Shift+#
在命令提示符中使用键盘快捷键(应该注释当前行)时,它会将提示从 切换为$
,(arg: 3)
而不是在行首添加破折号。Alt+Shift+@
将使其显示(arg: 2)
,等等。请参阅下面屏幕截图中的最后一行。在我击中Alt+Shift+#
它之前,它只是$
.
该快捷方式在我的机器上运行良好。
- 这是什么
(arg: n)
东西? - 键盘快捷键依赖于什么?键盘布局?操作系统发行版?终端模拟器?默认命令行界面?什么?
这是输入数字参数时 readline 库的提示。通过AltShift@在键盘上键入,您显然是在输入Alt2which maps to ,默认情况下在readline
M-2
中运行,并开始输入数字参数。如果您然后按(在您的情况下映射到),您将看到提示更改为; 您可以继续使用任何数字组合。digit-argument
Alt3AltShift#(arg: 23)
Alt这些参数用于某些 readline 函数,例如
yank-nth-arg
. 要查看此操作,请运行然后Alt2按CtrlAltY; 您会看到
(arg: 2)
提示出现,然后消失,并且上一个命令的第二个参数(“my”)将附加到您当前的命令行。有关详细信息,请参阅上面的链接文档。Bash 使用 readline 来处理它的输入;其他外壳不会显示相同的行为。
一些终端仿真器出于自己的目的使用其中一些组合键;例如在 GNOME 终端中,Alt-digit 切换到第n个选项卡。您需要禁用这些组合才能使用 readline 功能。
在您的情况下,基于 Web 的 Codecademy 终端仿真器似乎不能AltShift很好地处理组合。如果您不需要数字参数快捷方式,您可以通过运行重新调整它们的用途
从理论上讲,您应该能够通过添加永久存储它
到一个
~/.inputrc
文件,但我无法让它在 Codecademy 上工作。