在bash中按alt +数字,您会得到(arg [数字])那是什么?


101

在bash中按alt +数字,您会得到(arg [数字])那是什么?

(这种类型的问题更适合问一个人,而不是试图“猜测”正确的术语以通过互联网搜索文档)。


如果使用set keymap viin ~/.inputrcEsc + Digit
则按击会将

我的搜索短语是alt number terminal linuxalt + 1-9 terminal,最后是shell alt +1,这使我到了这里。
sshow

Answers:


62

您要搜索的术语是:

"readline arguments"

例如,这将引出bash参考手册中的本章

您可以将数字参数传递给Readline命令。有时,该参数用作重复计数,而有时,它是有意义的参数符号。如果将负参数传递给通常以正向作用的命令,则该命令将以反向作用。例如,要杀死返回到行首的文本,可以键入“ M-- C-k”。

将数字参数传递给命令的一般方法是在命令前键入元数字。如果键入的第一个“数字”是减号('-'),则参数的符号将为负。键入一个元数字以启动参数后,可以键入其余数字,然后键入命令。例如,要将Cd命令的参数设为10,可以键入“ M-1 0 C-d”,这将删除输入行中的后十个字符。

为此,您必须知道元密钥的映射位置:有时是Alt,有时是Esc很酷的计算机都有专用的元密钥;)

对于不熟悉语法的人,“ M-- Ck”等效于Meta_key+ - Ctrl+ k。“ M”是Meta键的简写,如所指出的,随系统而异,“ C”是Ctrl键的简写。字符(例如“ M-”)之后的“-”不是您键入的内容,而是一种指示同时按键的方法。


2
有没有一种方法可以使用数字参数来重复数字字符?例如,假设我想写128个零(“ 0”),我想我可以写Alt + 128再写0,但这给了我(arg: 1280(即使我放开了Alt键)。如何使用这种机制重复编号?
维克多·扎曼尼亚

1
@Victor:有趣的问题。我想不出一种方法来使用readline。您可能会遇到更好的情况$(perl -e 'print "0" x 128')

1
@VictorZamanian 在此问题中
TTT

28

为了重复数字字符-例如128个零,请点击以下命令:

Meta-key + 1 2 8 Ctrl + v 0


哦,就像vim(也许还有emacs,我不记得了)。
Sridhar Sarnobat,


9

它多次重复执行下一个命令,与Emacs中相同。例如,M-1-0 C-p后退10个历史项目。M-4 C-h退格四个字符,M-3 M-t将前一个单词向前移动三遍,依此类推。在这里,我M-对Alt键使用了“元”的含义,就像Bash中的习惯一样。


9

我知道这已经是一个可以接受的答案,但是我确实找到了一些有用的示例这些示例还演示了除简单重复字符外的其他用途。digit参数可以应用于各种事物。例如,序列“ Alt + 3,Escape,Backspace”将向后删除3个单词。


4

我不知道,但是当您执行alt +数字键,然后按一个字符时,您会得到num个字符:(arg:123)+ a-> 123 times“ a”


8
你不知道,你知道吗?%-|

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.