Emacs:如何绑定(bind)两次点击的键?

标签 emacs

我正在使用 Emacs (23) 并且我正在将 C-. 组合键绑定(bind)到一个函数:

(global-set-key (kbd "C-.") 'myfunction)

是否可以绑定(bind)一个快速的“双击”键?例如,我想在快速键入 . 两次时调用函数 myfunction

最佳答案

没有内置任何内容,但您可以使用此代码。将变量 dc-single-click-cmddc-double-click-cmd 自定义为您想要的命令。

注意:这会带来轻微的延迟,b/c 代码需要等待一点时间来确定事件是单击还是双击。

(defvar dc-single-click-cmd 'dc-example-single-click)
(defvar dc-double-click-cmd 'dc-example-double-click)
(defvar dc-click-timer nil
  "Pending single-click event.")
(defun dc-example-single-click ()
  (interactive)
  (message "A single click just happened."))
(defun dc-example-double-click ()
  (interactive)
  (message "Wait!  I meant double click."))
(defun dc-click-cmd ()
  "Either kick off a single click, or a double click."
  (interactive)
  (if dc-click-timer
      (progn
        (cancel-timer dc-click-timer)
        (setq dc-click-timer nil)
        (call-interactively dc-double-click-cmd))
    (setq dc-click-timer (run-at-time (when double-click-time 
                                            (/ 1000.0 double-click-time))
                                      nil
                                      'dc-call-single-click))))
(defun dc-call-single-click ()
  "spawn the single click"
  (setq dc-click-timer nil)
  (call-interactively dc-single-click-cmd))

关于Emacs:如何绑定(bind)两次点击的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4923723/

相关文章:

emacs - emacs evil 如何将光标移动到行的中间?

visual-studio - 如何像 Visual Studio 一样在 Emacs 中编辑处理制表符和空格的代码?

c - 括号内的缩进而不是 emacs 中的右括号旁边

emacs - 在 Emacs 中自动刷新(不仅仅是拖尾)文件

python - 绳索自动导入不起作用

emacs - 如何使用 comint 将编译绑定(bind)到组合键

emacs - 如何将文本移回父级别下方

emacs - 组织模式 LaTeX 导出 - 使待办事项变为红色

emacs - 字节编译次要模式键绑定(bind)时出现无效的键映射错误

linux - 如何在 Linux 终端中显示 GUI 应用程序的窗口标题