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

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

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


person dreftymac    schedule 18.02.2009    source источник
comment
Если у вас есть set keymap vi в ~/.inputrc, то нажатие Esc + Digit приводит вас в тот же режим, как если бы вы готовились к повторению команды vi (но вы не можете использовать привязки vi из них, только уродливые emacs :-()   -  person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 15.03.2016
comment
Моими поисковыми фразами были alt number terminal linux, alt + 1-9 terminal и, наконец, shell alt + 1, что и привело меня сюда.   -  person sshow    schedule 31.08.2018


Ответы (7)


Термин, который вы хотите найти в Google:

"readline arguments"

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

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

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

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

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

person Community    schedule 18.02.2009

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

Мета-клавиша + 1 2 8 Ctrl + v 0

person guv'    schedule 20.07.2012
comment
Ооооо, это как vim (может быть и emacs тоже, не помню). - person Sridhar Sarnobat; 20.11.2018

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

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

person Sean Bright    schedule 18.02.2009
comment
Что происходит для вас? Я ничего не получаю. - person Mortimer McMire; 09.07.2014
comment
Вставляются четыре символа t. - person Wesley Baugh; 04.01.2018
comment
В моей версии Bash (4.4) нет необходимости нажимать ENTER. - person luca76; 09.05.2019

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

person Nietzche-jou    schedule 18.02.2009

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

person stsquad    schedule 28.05.2013

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

person Giancarlo    schedule 18.02.2009
comment
ты не знаешь, но знаешь? %-| - person ; 18.02.2009

раздел руководства bash - в основном способ повторения строки чтения команды или их реверсирование.

person Douglas Leeder    schedule 18.02.2009