【发布时间】:2012-01-10 08:54:59
【问题描述】:
编辑:也许(在原始帖子中)我错误地使用了“瞬态”一词(我对行话还不够熟悉)。我真正的意思是,当用户按下 导航键 时,突出显示的区域会立即消失。箭头键...(第二次编辑:我删除了“瞬态”这个词)
选择一个区域以便用户得到“光标键移动将使突出显示消失”的特殊问题最近一直是我存在的祸根。根据我运行以下脚本的方式,我得到不同的结果。
为什么它会给出不同的结果,更具体地说,有没有办法让它产生“光标键使突出显示消失”,无论正在运行哪种模式,或者是否正在评估它测试时? .. CUA 模式有这种行为,但我真的需要非 CUA 模式也这样做(如果可能的话,还要评估)......
这是结果,后面是代码。 (GNU Emacs 23.1.1)
-
启用CUA模式
通过
C-x C-e评估——(call-trans-hi)和(trans-hi)
禁止:设置标记和移动点都指向 EOL,但 什么都没有 em> 突出显示。执行
M-x call-trans-hi
好的:工作正常;该区域突出显示,然后在第一次按下键时消失。通过键绑定
C-f1
好的:工作正常;该区域被突出显示,然后在第一次按下键时消失。
-
没有 CUA 模式(几乎是标准 emacs)
通过
C-x C-e评估
NO-GO:与 1 相同。启用 CUA 时。执行
M-x call-trans-hi
NO-GO:该行被突出显示,但它很粘!并且需要C-g(键盘退出) 来清除它。通过键绑定
C-f1
NO-GO:该行已突出显示,但它很粘! 并且需要C-g(键盘-quit) 清除它。
;test (trans-hi) EOL
(defun trans-hi ()
"transient highlight"
(beginning-of-line)
(push-mark (point))
(end-of-line)
(activate-mark))
;test (call-trans-hi) EOL
(defun call-trans-hi ()
"call transient highlight"
(interactive)
(trans-hi))
(global-set-key [C-f1] 'call-trans-hi)
【问题讨论】: