Bermain dengan makro:
Ikat tombol fungsi F8untuk mengalikan dua kata terakhir (naik spasi sebelumnya) (kode kunci F8 ditemukan dengan menggunakan Ctrl-V F8
):
$ bind '"\e[19~": "\C-w\C-y\C-y"'
Itu bisa dibuat permanen dengan mengirim teks yang sama ke ~/.inputrc
$ echo '"\e[19~": "\C-w\C-y\C-y"' >> ~/.inputrc
lalu ketik:
gema 0F8F8F8F8
untuk mendapatkan 2 ^ 4 kali nol. (masih 5 penekanan tombol).
atau ketik:
buku gemaF8F8F8
untuk mendapatkan 2 ^ 3 kata buku.
Masih lebih cepat:
Kalikan dengan 4:
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y"'
gema 0F8F8
3 penekanan tombol.
Kalikan dengan 8 (angka yang sama dengan tombol fungsi)
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'
gema 00F8
Masih 3 penekanan tombol.
Curang?
Cheat dengan mengalikan 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"'
gema 0F8
Hanya 2 penekanan tombol. (dan masih fungsi sederhana yang bermanfaat)
^^^^^^^^^^^^^^^^ (basis 36? Hah!) :-P
Kecurangan polos:
$ bind '"\e[19~": "0000000000000000"'
gema F8
Hanya 1 (ya: satu ) keystroke.
Mengubah pengikatan untuk ctrl+U:
Kirim ini ke ~/.inputrc
:
echo '"\C-u": universal-argument >> ~/.inputrc
Baca ulang ~/.inputrc
file:
ctrl+Xctrl+R
lakukan seperti biasa di emacs (seperti yang kamu inginkan):
foo --bar = baz ctrl+U16 ctrl+U0
7 tombol (setelah "pengaturan").
Sedikit lebih pendek:
Gunakan "kalikan dengan 4" dari "argumen universal" dan akhiri dengan
ctrl+V 0
foo --bar = baz ctrl+Uctrl+Uctrl+V0
Hanya 5 kunci.
Menggunakan alt+nakses ke (arg: n)
foo --bar = baz Alt+16Ctrl+V0
Itu 6 kunci untuk mendapatkan 16 angka nol.
Tidak mengubah pintasan keyboard apa pun:
Jika di bash Anda, Anda miliki bash C-u kills the currently-being-typed line
.
Itu karena "\C-u":
terikat unix-line-discard
.
Tapi itu mungkin juga membantu:
Kapan, apa yang sebelum kursor dihapus, itu juga ditempatkan di "cincin bunuh".
Jadi ctrl+u
menghapus dan ctrl+y
menarik kembali apa yang terhapus.
Pada garis yang bersih: Ketik 00
hapus dan tarik kembali dua kali untuk membuatnya 0000
.
Ulangi untuk mendapatkan 00000000
(8 nol), akhirnya ketik perintah dan tarik kembali dua kali.
Set pertama (7 tombol terus ctrlditekan):
00 ctrl+Uctrl+Yctrl+Y ctrl+U
Set kedua (5 tombol)
ctrl+Uctrl+Yctrl+Y ctrl+U
Itu akan mendapatkan delapan nol di cincin hapus, lalu ketik apa yang Anda inginkan:
foo --bar = baz ctrl-Y ctrl-Y
mendapatkan:
foo --bar=baz 0000000000000000
Setelah Anda mendapatkan ide, Anda juga bisa, ketik apa yang Anda butuhkan, pergi ke awal baris ( ctrl-Y), lakukan seperti di atas (hingga delapan nol) pergi ke akhir ( ctrl-E) dan mencabut dua kali.
foo --bar = baz ctrl-A00ctrl-Uctrl-Yctrl-Y ctrl-Uctrl-Yctrl-Y ctrl-U ctrl-Ectrl-Yctrl-Y
Itu 15 kunci (di samping perintah itu sendiri).
Tidak pendek, saya tahu, tetapi itu hanya bekerja dengan apa yang tersedia.
Ini sedikit lebih pendek:
0000 ctrl-U ctrl-Y ctrl-Y ctrl-Y ctrl-Yctrl-A foo --bar = baz
Itu 11 kunci
know what you want to do
. Dalam perintah bertingkat yang kompleks, bagaimana bash akan tahu bagian mana yang ingin Anda lihat hasil eksekusi dalam sejarah sebagai lawan dari perintah itu sendiri? Bagaimana dengan variabel? Singkatnya bash selalu akan memilikicode
dalam sejarah, bukan hasil dari mengeksekusi kode.