マクロで遊ぶ:
ファンクションキーF8をバインドして、最後の単語を 2つ乗算します(前のスペースを上にします)(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(はい:1)のキーストローク。
のバインディングの変更ctrl+U:
これを送る~/.inputrc
:
echo '"\C-u": universal-argument >> ~/.inputrc
~/.inputrc
ファイルを再読み取りします。
ctrl+Xctrl+R
emacsで通常行われているように(必要に応じて):
foo --bar = baz ctrl+U16 ctrl+U0
7つのキー(「セットアップ」の後)。
少し短い:
「universal-argument」のデフォルトの「multiply by 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
いるためです。
しかし、それはまた役立つかもしれません:
カーソルが消去される前に、それが「キルリング」に置かれるとき。
だからctrl+u
消去し、消去されたctrl+y
ものを引き戻します。
きれいな行で:00
eraseと入力し、2回ヤンクして元に戻し0000
ます。
繰り返して00000000
(8個のゼロ)を取得し、最後にコマンドを入力して2回ヤンクします。
最初のセット(7つのキーをctrl押し続けます):
00 ctrl+Uctrl+Yctrl+Y ctrl+U
2番目のセット(5キー)
ctrl+Uctrl+Yctrl+Y ctrl+U
これにより、消去リングに8つのゼロが追加され、必要なものを入力します。
foo --bar = baz ctrl-Y ctrl-Y
取得するため:
foo --bar=baz 0000000000000000
アイデアを得た後、必要なものを入力し、行の先頭(ctrl-Y)に移動し、上記のように(最大8つのゼロ)末尾に移動(ctrl-E)し、2回ヤンクします。
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
コードを実行した結果ではなく、履歴に記録されます。