玩宏:
将功能键绑定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键。(仍然是一个有用的简单功能)
^^^^^^^^^^^^^^^^^(base 36?Hah!):-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
这是获得16个零的6个键。
不更改任何键盘快捷键:
如果你坚持下去bash C-u kills the currently-being-typed line
。
那是因为"\C-u":
绑定到unix-line-discard
。
但这也可能会有所帮助:
删除游标之前的时间时,还将其放置在“ kill-ring”中。
因此,ctrl+u
擦除并ctrl+y
撤回已擦除的内容。
在干净的行上:键入00
擦除它,然后将其重新拉回两次以使其成为0000
。
重复以获得00000000
(8个零),最后键入命令并再次拉回两次。
第一组(ctrl按住7键):
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-Y ctrl-A foo --bar = baz
那是11把钥匙
know what you want to do
。在复杂的嵌套命令中,bash如何知道您想查看历史中与命令本身相对的执行结果?变量呢?简而言之,bash总是会存在code
于历史中,而不是执行代码的结果。