gpt4 book ai didi

Emacs:键绑定(bind)到匿名函数的性能

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:22 26 4
gpt4 key购买 nike

我的两个选择是

绑定(bind)前定义函数

例如:

(defun select-all ()
(interactive)
(mark-whole-buffer))

然后绑定(bind)它:

(global-set-key (kbd "C-a") 'select-all)

绑定(bind)匿名函数

一次性定义和绑定(bind):

(global-set-key (kbd "C-a")
(lambda ()
(interactive)
(mark-whole-buffer)))

我的问题

如果我一次性定义和绑定(bind),对性能有影响吗?

引用资料

emacswiki.org - InteractiveKeybinding似乎在告诉我们这是可以接受的。

最佳答案

一般使用绑定(bind)不会影响性能。对于使用该信息的其他命令(例如 C-h k),性能可能会受到很小的影响,但这也很小,您甚至不太可能注意到它,并且考虑到您可能不经常使用 C-h k,等式中效率最低的部分是用户。

定义一个函数然后绑定(bind)它而不是仅仅做一个 lambda 有两个主要好处

  1. 重用。拥有命名函数意味着您可以将它与 M-x 一起使用,或者可能在您编写的其他函数或库中使用它。

  2. 文档。这是一个重要的。我经常发现自己在查看基于 lambda 的键绑定(bind),并且必须通过它才能准确记住它的作用。另一方面,如果它是我绑定(bind)的命名函数,那么它可能会更明显。您还可以获得 C-h k 的东西和对命名函数的适当支持。

因此,我倾向于只在 lambda 类型绑定(bind)真正微不足道且显而易见的情况下才使用它,而在所有其他时间使用命名函数。

关于Emacs:键绑定(bind)到匿名函数的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36041859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com