Это цифровой аргумент , функция библиотеки readline, встроенная в bash
:
digit-argument (M-0, M-1, ..., M--)
Add this digit to the argument already accumulating, or start a
new argument. M-- starts a negative argument.
Эта функция упрощает добавление или удаление текста в редактируемой в настоящее время командной строке. Допустим, вы хотите написать echo gggg
:
- Введите
echo
с пробелом
- Нажмите клавишу Meta (который может быть Win, Altи / или Escдля вас) и типа
4g
Но как часто вам нужно набирать одну букву столько раз, чтобы это вас спасло? Эта функция в первую очередь предназначена для команд readline , см. Главы 8.2.1–8.2.3 Справочного руководства («C» означает Ctrl«M» означает «Мета»).
Вы можете переместиться назад на одно слово с помощью Meta и B, но что, если вы хотите переместиться назад на несколько слов одновременно? Вы можете удерживать Altи нажимать Bнесколько раз, или использовать цифровой аргумент:
В командной строке есть опечатка на пять слов назад:
$ echo one two tree four five six seven█
Нажмите клавишу Meta, введите 5
и нажмите Meta и B. Et violà:
$ echo one two █ree four five six seven
- Закрепить опечатка и либо нажмите , Enterчтобы стрелять или Endили Ctrl+ , Eчтобы снова перейти к концу строки.
Вы можете удалить одно слово, нажав Meta и Backspace, но что, если вы хотите удалить несколько слов одновременно?
Вы забыли слово в командной строке:
$ echo one two four five six seven█
Нажмите клавишу Meta, введите 4
и нажмите Meta и Backspace.
$ echo one two █
Введите пропущенное слово, затем пробел и нажмите Ctrl+, Yчтобы вставить только что удаленное. Et violà:
$ echo one two three four five six seven█
Вы правы, вы могли бы также переместиться туда, как только что объяснили, не удаляя ничего. Мы находимся в Linux, всегда есть несколько способов сделать то же самое.
И что такое «отрицательный аргумент»? Он делает то же самое, но в противоположном направлении, поэтому мета- -2
мета Backspaceудаляет следующие два слова командной строки. «Но можно использовать Meta 1
Meta, Dчтобы сделать то же самое!» Рад, что вы получили это, добро пожаловать в вашу командную строку.
Дальнейшее чтение:
Esc
set -o vi
).