使用Emacs的,没有任何初始化文件,以及您所提供的(put-text...
代码,我可以在该行的开头的Mx删除字符删除炭(镉),并在该月底删除字符与Mx向后删除字符(删除(好吧,那真的是delete-backward-char
))。
在澄清问题的编辑:
这两种意见,将删除整个无形区片:
(defadvice delete-char (around delete-char-intangible activate)
"when about to delete a char that's intangible, delete the whole region
Only do this when #chars is 1"
(if (and (= (ad-get-arg 0) 1)
(get-text-property (point) 'intangible))
(kill-region (point) (save-excursion (forward-char 1) (point)))
ad-do-it))
(defadvice delete-backward-char (around delete-backward-char-intangible activate)
"when about to delete a char that's intangible, delete the whole region
Only do this interactively and when #chars is 1"
(if (and (= (ad-get-arg 0) 1) (> (point) (point-min))
(get-text-property (- (point) 1) 'intangible))
(kill-region (point) (save-excursion (backward-char 1) (point)))
ad-do-it))
建议检查,以确保该命令被调用的参数1,只有这样才会删除整个无形区域,否则就表现正常。
对不起,不是很精确。我希望删除命令删除整个无形文本,不仅仅是 的一部分。在我正在构建的用户界面中,一些关键文本是隐形和无形的。所以当用户 按下DEL(C-d)之后(之前)隐藏的无形文本时,整个文本应该消失。 谢谢。 – VitoshKa 2010-09-29 19:23:08
谢谢Trey,它的工作原理! – VitoshKa 2010-09-30 07:52:14