Cukup umum bahwa saya akan melihat dokumentasi perintah dengan C-h f
, dan kemudian menjalankan perintah dengan M-x
segera setelah itu.
Saat ini, cara terpendek yang saya temukan untuk "menjalankan perintah tampilan terakhir" adalah menyalin namanya (baik dari buffer bantuan atau dari sejarah) dan menariknya ke M-x
dalam minibuffer prompt.
Apa yang benar-benar saya inginkan adalah nama perintah yang diberikan
describe-function
untuk menjadi bagian dari sejarah
execute-extended-command
. Jadi saya bisa melakukannya M-x M-p RET
.
Apa cara termudah untuk melakukan ini?
documentation
m-x
history-variables
Malabarba
sumber
sumber
smex
danhelm-M-x
? yang pertama adalah dalam MELPA, yang terakhir termasuk dalamhelm
, dalam MELPA.Jawaban:
"Cara termudah" adalah hanya mendefinisikan versi Anda sendiri
describe-function
, dan ikat ituC-h f
.Ambil kode vanilla, dan ubah hanya panggilan
completing-read
sehingga menggunakan daftar riwayat yang sama denganM-x
(execute-extended-command
) yang digunakanextended-command-history
.Bagaimana saya menemukan kode asli?
C-h f describe-function
,C-h k M-x
,C-h f execute-extended-command
. Dalam kode untukexecute-extended-command
saya melihat bahwa itu membaca nama perintah menggunakanread-extended-command
, dan yang memanggilcompleting-read
lewatextended-command-history
sebagaiHISTORY
argumen.sumber
Saya dapat menambahkan bukan jawaban yang tepat untuk pertanyaan Anda, tetapi alur kerja yang menghilangkan kebutuhan untuk itu.
Saya menggunakan
smex
bukanexecute-extended-command
. Sekali dalam minibuffer darismex
:execute-extended-command
smex-describe-function
smex-find-function
Saya tidak suka binding default, jadi saya telah menyesuaikannya:
sumber
Harap perhatikan bahwa sangat mudah untuk menjalankan perintah dari buffer Bantuannya. Setelah mengetik ketik
C-h f
sajaM-x M-n RET
. Ini berfungsi karena dalam buffer Bantuan baru nama perintah ada di bagian atas buffer di bawah kursor, danM-n
mengambilnya ke minibuffer.Namun, jika Anda ingin menambahkan perintah ke
extended-command-history
setiap kali Anda mengunjungi dokumentasinya, maka Anda dapat melakukan ini dengan saran kecil:atau menggunakan makro baru yang baru
define-advice
saja ditambahkan di 25.0.50:sumber
(interactive)
?(commandp function)
memeriksa apakah fungsi yang dicari bersifat interaktif karena hanya perintah yang harus ditambahkanextended-command-history
. Jadi jika fungsi yang dicari tidak interaktif, itu tidak ditambahkanextended-command-history
.Jika Anda menggunakan
helm-M-x
, tidak perlu mengetikC-h f
untuk mencari dokumentasi perintah, cukup gunakanC-j
atauC-z
saat menjalankanhelm-M-x
untuk beralih tampilan dokumentasi.Lihat juga fitur Helm Mx .
sumber