Qt mendukung ikatan kunci gaya Emacs , namun hanya untuk hingga empat tombol. Untuk menjelaskan mengapa batas ini harus ditingkatkan, akan bermanfaat untuk menunjukkan contoh ikatan kunci gaya Emacs dengan lebih banyak kunci dari itu. Apakah ada contoh yang diketahui untuk ini atau mungkin bahkan cara untuk secara terprogram menemukan urutan kunci panjang yang didefinisikan dalam kartu kunci Emacs?
sunting: Saya pikir ini adalah pengetahuan umum, tetapi urutan kunci adalah serangkaian kunci yang dibaca oleh read-key-sequence
. Coba F1 k
untuk kandidat Anda dan lihat apakah itu menggambarkan perintah Anda atau yang tidak terkait sebelumnya.
key-bindings
keymap
wasamasa
sumber
sumber
C-u 1 0 0 0 C-n
yang mana adalah enam kunci.F1 k C-u 1 0 0 0 C-n
dan lihat ituC-u
adalah urutan kunci sendiri.Jawaban:
Saya diuji dengan skrip berikut,
Dan terpanjang saya dapatkan dengan saya
.emacs.d
yaituC-x c C-x r i
yang beberapa perintah helm, dan denganemacs -q
saya mendapatkanC-x a i l
yang menjalankan perintahinverse-add-mode-abbrev
.sumber
C-x M-c M-b u t t e r f l y
:) Saya lupa bahwa saya telah melakukan itu ...where-is-internal
sejauh ini mendominasi waktu CPU di sini, tetapi Anda masih dapat dengan mudah mencukur beberapa siklus dengan merusak prabayar daftar yang lebih pendek ke yang lebih lama melalui(setq keyseqs (nconc (where-is-internal sym nil nil t) keyseqs))
.M-x butterfly
? Saya hanya mengikatnya pada perintah itu untuk meningkatkan keaslian :)Saya tidak bisa menjawab tentang apa yang paling lama mungkin ada di suatu tempat, tapi di sini ada sedikit info yang mungkin bisa membantu.
Saya memiliki beberapa pustaka yang menyediakan satu set perintah terkait yang terikat pada kunci di dalam tombol yang saya ikat ke kunci awalan.
Karena saya tidak ingin memilih kunci pengguna dll., Saya biasanya mengikat kunci awalan seperti itu di bawah, katakan
C-x
atau, untukother-window
perintah, di bawahC-x 4
(keymapctl-x-4-map
).Pertimbangan yang sama berlaku untuk grup perintah di keymap seperti itu: mereka terkadang mendapatkan keymap mereka sendiri. Dan seterusnya, secara rekursif.
Saya berharap bahwa setidaknya beberapa pengguna mungkin ingin mem-rebind keymaps semacam itu (pada level apa pun) ke kunci awalan mereka sendiri, lebih pendek, atau mereka mungkin ingin mengikat perintah tertentu ke urutan kunci yang lebih pendek. Tapi saya tidak ingin melakukannya di perpustakaan itu sendiri, jelas.
Berikut adalah contoh dari salah satu kunci yang cukup panjang:
C-x 4 j t . % *
(tujuh penekanan tombol), yang terikat pada perintahicicle-bookmark-file-this-dir-all-tags-regexp-other-window
di Bookmark + .Ilmu urai:
Pada tombol
C-x 4
awalan (ctl-x-4-map
).Pada tombol
j
awalan, yang untuk semua perintah untuk melompat ke bookmark .Pada
t
kunci awalan, yang untuk semua perintah untuk melompat ke penanda yang ditandai dalam beberapa cara.Pada
.
kunci awalan, yang untuk semua perintah untuk melompat ke bookmark yang untuk file di direktori saat ini yang ditandai dalam beberapa cara.Pada
%
kunci awalan, yang untuk semua perintah untuk melompat ke penanda yang untuk hal-hal di direktori saat ini yang memiliki tag yang cocok dengan regexp Anda diminta.Pada
*
tombol, yang untuk semua perintah untuk melompat ke penanda yang untuk hal-hal di direktori saat ini yang memiliki tag , SEMUA yang cocok dengan regexp Anda diminta. (Sebaliknya,C-x 4 j t . % +
untuk bookmark BEBERAPA dari tag yang cocok dengan regexp.)Semua itu konvensional di Bookmark + (dan beberapa sesuai dengan konvensi Dired, BTW):
j
adalah untuk perintah lompat ,t
untuk tag ,.
untuk direktori-saat ini ,%
untuk regexp , dan*
untuk semua (+
untuk beberapa ).(Oh, dan menggunakan sexp @ mkcms, saya dapatkan
C-x 4 j t f % *
, yang sama panjangnya.f
Singkatan dari file . SepertiC-x 4 j t . % *
, tetapi bookmark kandidat untuk penyelesaian adalah semua penanda file, bukan hanya untuk file di direktori saat ini (.
).)sumber
Magit
menambahkan urutan panjang karena memungkinkan opsi untuk beralih. Misalnya ketika Anda meminta log, Anda dapat memilih opsi pendek atau panjang, jika Anda ingin cabang jarak jauh atau tidak, jika Anda ingin tampilan grafis cabang dan sebagainya. Permintaan dasar untuk log hanyalah beberapa penekanan tombol darimagit-status
buffer tetapi Anda dapat menambahkan lebih banyak lagi.Hal yang sama berlaku untuk komit, dua penekanan tombol untuk komit dasar, tetapi banyak tambahan opsional.
Jadi pertanyaannya belum ditentukan, apakah Anda hanya mempertimbangkan
stock
emacs (apa pun artinya)?sumber
F1 k
dan lihat berapa banyak tombol yang dapat Anda ketik hingga menjelaskan perintahnya.