Нажмите alt + numeric в bash, и вы получите (arg [numeric]) что это?

101

Нажмите alt + numeric в bash, и вы получите (arg [numeric]) что это?

(Этот тип вопросов лучше подходит для того, чтобы задать вопрос человеку, вместо того, чтобы пытаться «угадать» правильную терминологию для поиска в документации через Интернет).

Dreftymac
источник
Если у вас есть set keymap viin ~/.inputrc, то нажатие Esc + Digitприведет вас в тот же режим, как если бы вы готовились к повторению команды vi (но вы не можете использовать привязки vi из них, только уродливые emacs :-()
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Мои поисковые фразы: alt number terminal linux , alt + 1-9 terminal и, наконец, shell alt + 1, что привело меня сюда.
sshow

Ответы:

62

Термин, который вы хотите использовать в Google:

"readline arguments"

Это приведет, например, к этой главе справочного руководства bash :

Вы можете передавать числовые аргументы командам Readline. Иногда аргумент действует как счетчик повторов , а иногда - знак аргумента, который имеет значение. Если вы передадите отрицательный аргумент команде, которая обычно действует в прямом направлении, эта команда будет действовать в обратном направлении. Например, чтобы убрать текст до начала строки, вы можете набрать «M - C-k».

Общий способ передать числовые аргументы команде - это ввести мета-цифры перед командой. Если первая набранная «цифра» является знаком минус («-»), то знак аргумента будет отрицательным. После того, как вы ввели одну мета-цифру, чтобы запустить аргумент, вы можете ввести оставшуюся часть цифр, а затем команду. Например, чтобы дать команде Cd аргумент 10, вы можете ввести «M-1 0 C-d», что приведет к удалению следующих десяти символов в строке ввода.

Чтобы это работало, вы должны знать, где отображается мета-ключ: иногда это Alt, иногда Escкрутые компьютеры имеют выделенный мета-ключ;)

Для тех, кто не знаком с синтаксисом, «M - Ck» эквивалентно Meta_key+ - Ctrl+ k. «M» - это сокращение для мета-клавиши, которая, как уже отмечалось, зависит от системы, «C» - это сокращение для клавиши Ctrl. Знак «-» после символа (например, «M-») - это не то, что вы вводите, это способ обозначения одновременных нажатий клавиш.

Сообщество
источник
2
Есть ли способ повторить числовые символы с использованием числовых аргументов? Например, скажем, я хочу написать 128 нулей ('0'), я бы подумал, что могу написать Alt + 128, а затем 0, но это дает мне (arg: 1280(даже если я отпустил клавишу Alt). Как мне повторять числа, используя этот механизм?
Виктор Заманян
1
@Victor: интересные вопросы. Я не могу придумать, как это сделать с помощью строки чтения. вам, вероятно, лучше с чем-то вроде$(perl -e 'print "0" x 128')
28

Чтобы повторить числовые символы - например, 128 нулей, нажмите следующее:

Meta-key + 1 2 8 Ctrl + v 0

мужик
источник
Ооооо, это как vim(может быть, и emacs, я не помню).
Шридхар Сарнобат
12

Попробуй это. Введите Alt 4, затем введите T, затем нажмите Enter.

Отредактировано для использования более привлекательного HTML.

Шон Брайт
источник
9
Что с тобой происходит? Я ничего не получаю.
Mortimer McMire 09
1
tВставлены четыре символа.
Уэсли Боуг
4
В моей версии Bash (4.4) нет необходимости нажимать ENTER.
luca76
9

Следующая данная команда повторяется много раз, как и в Emacs. Например, M-1-0 C-pперемещает назад 10 элементов истории. M-4 C-hвозвращает четыре символа, M-3 M-tперемещает предыдущее слово вперед три раза и так далее. Здесь я использую M-значение «мета» для клавиши Alt, как это принято в Bash.

Ницше-Жу
источник
9

Я знаю, что это уже принятый ответ, однако я нашел несколько полезных примеров, которые также демонстрируют дополнительные возможности, помимо простого повторения символов. Аргументы-цифры могут применяться ко всем вещам. Например, последовательность «Alt + 3, Escape, Backspace» удалит 3 слова назад.

stsquad
источник
4

Я не знаю, но когда вы нажимаете alt + numeric, а затем нажимаете символ, вы получаете num caracters: (arg: 123) + a -> 123 раза "a"

Джанкарло
источник
8
вы не знаете, но знаете? % - |