Гра з макросами:
Прив’яжіть функціональну клавішу, F8щоб перемножити на два останнє слово (вгору попереднє пробіл) (код клавіші F8, знайдений за допомогою Ctrl-V F8
):
$ bind '"\e[19~": "\C-w\C-y\C-y"'
Це можна зробити постійним, надіславши той самий текст ~/.inputrc
$ echo '"\e[19~": "\C-w\C-y\C-y"' >> ~/.inputrc
потім введіть:
відлуння 0F8F8F8F8
щоб отримати 2 ^ 4 рази більше нуля. (ще 5 натискань клавіш).
або введіть:
ехо книгаF8F8F8
щоб отримати 2 ^ 3 книжкових слів.
Ще швидше:
Помножте на 4:
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y"'
відлуння 0F8F8
3 натискання клавіш.
Помножте на 8 (те саме число, що і функціональна клавіша)
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'
ехо 00F8
Ще 3 натискання клавіш.
Чит?
Читайте шляхом множення на 16.
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'
відлуння 0F8
Лише 2 натискання клавіш. (та ще корисна проста функція)
^^^^^^^^^^^^^^^^ (база 36? Га!) :-P
Просте обман:
$ bind '"\e[19~": "0000000000000000"'
відлуння F8
Всього 1 (так: один ) натискання клавіші.
Зміна прив’язки для ctrl+U:
Надіслати це на адресу ~/.inputrc
:
echo '"\C-u": universal-argument >> ~/.inputrc
Перечитайте ~/.inputrc
файл:
ctrl+Xctrl+R
зробіть це як зазвичай в emacs (як хотіли):
foo --bar = baz ctrl+U16 ctrl+U0
7 клавіш (після "налаштування").
Трохи коротше:
Використовуйте за замовчуванням "помножте на 4" "універсального аргументу" і закінчіть
ctrl+V 0
foo --bar = baz ctrl+Uctrl+Uctrl+V0
Всього 5 клавіш.
Використання alt+nдоступу до (arg: n)
foo --bar = baz Alt+16Ctrl+V0
Це 6 клавіш, щоб отримати 16 нулів.
Не змінюючи жодної комбінації клавіш:
Якщо у вашому башті є bash C-u kills the currently-being-typed line
.
Це тому "\C-u":
, що зобов’язаний unix-line-discard
.
Але це також може допомогти:
Коли, що є перед тим, як курсор буде стерто, він також розміщується у "kill-ring".
Тож ctrl+u
стирає і ctrl+y
янки повертає те, що було стерто.
У чистому рядку: Введіть 00
стерти його та двічі поверніть його назад 0000
.
Повторіть для отримання 00000000
(8 нулів), нарешті введіть команду і двічі поверніть назад.
Перший набір (натискання 7 клавіш ctrl):
00 ctrl+Uctrl+Yctrl+Y ctrl+U
Другий набір (5 клавіш)
ctrl+Uctrl+Yctrl+Y ctrl+U
Це отримає вісім нулів у кільці стирання, а потім введіть те, що потрібно:
foo --bar = baz ctrl-Y ctrl-Y
отримати:
foo --bar=baz 0000000000000000
Отримавши ідею, ви також можете ввести те, що вам потрібно, перейдіть до початку рядка ( ctrl-Y), зробіть так, як вище (до восьми нулів), перейдіть до кінця ( ctrl-E) і потріпніть двічі.
foo --bar = baz ctrl-A00ctrl-Uctrl-Yctrl-Y ctrl-Uctrl-Yctrl-Y ctrl-U ctrl-Ectrl-Yctrl-Y
Це 15 клавіш (поруч із самою командою).
Я не короткий, я знаю, але це працює лише з тим, що було доступно.
Це трохи коротше:
0000 ctrl-U ctrl-Y ctrl-Y ctrl-Y ctrl-Yctrl-A foo --bar = baz
Це 11 ключів
know what you want to do
. Як складна вкладена команда, як би знати, в яких частинах ви хотіли бачити результат виконання в історії, на відміну від самої команди? Що щодо змінних? Коротше кажучи, bash завжди буде матиcode
історію, а не результат виконання коду.