Играя с макросами:
Привязать функциональную клавишу, 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 у вас есть bash C-u kills the currently-being-typed line
.
Это потому, что "\C-u":
связано с unix-line-discard
.
Но это также может помочь:
когда то, что находится перед удалением курсора, оно также помещается в «кольцо уничтожения».
Так ctrl+u
стирает и ctrl+y
возвращает обратно то, что было стерто.
На чистой линии: 00
напечатайте erase it и дважды потяните его назад, чтобы сделать это 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 узнает, какие части вы хотите видеть в результате выполнения в истории, а не в самой команде? Как насчет переменных? Короче говоря, bash всегда будет иметьcode
в истории, а не результат выполнения кода.