Натисніть alt + числовий в bash, і ви отримаєте (arg [числовий]) що це?


101

Натисніть alt + числовий в bash, і ви отримаєте (arg [числовий]) що це?

(Цей тип питань краще підходить для запитання людини, замість того, щоб намагатися «здогадуватися» про правильну термінологію для пошуку документації через Інтернет).


Якщо у вас є set keymap viв ~/.inputrc, то б'ючи Esc + Digitведе вас в той же режим, як якщо б підготовка до VI команди повторення в (але ви не можете використовувати VI прив'язок з них на, тільки потворні EMACS з них :-()
Чіро Сантіллі郝海东冠状病六四 事件 法轮功

Мої пошукові фрази були альт-терміналом linux , alt + 1-9 терміналом і в кінцевому підсумку оболонкою 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" - це скорочення для ключа Meta, яке, як зазначалося, залежить від системи, "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.

Відредаговано для використання Snazzier HTML.


9
Що з тобою відбувається? Я нічого не отримую.
Мортімер МакМір

1
tВставлено чотири символи.
Веслі Бей

4
У моїй версії Bash (4.4) не потрібно натискати ENTER.
luca76

9

Він повторює наступну команду, враховуючи, що багато разів те саме, що і в Emacs. Наприклад, M-1-0 C-p10 повернених предметів історії. M-4 C-hповертає чотири символи, M-3 M-tтричі переміщує попереднє слово вперед тощо. Тут я використовую M-значення "мета" для клавіші Alt, як це звичай у Bash.


9

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


4

Я не знаю, але коли ви будете робити alt + числовий і потім натискаєте символ, ви отримаєте кількість символів: (арг: 123) + a -> 123 рази "a"


8
ти не знаєш, але ти знаєш? % - |

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.