【发布时间】:2010-11-12 12:35:29
【问题描述】:
我正在尝试设置一些键绑定以使用 Shift 键突出显示文本。我可以使用pc-selection-mode,但这并不能提供我想要的所有键绑定。例如,我希望能够通过按 Shift-Ctrl-down 来对整个段落进行移位标记,这在大多数 MS 文本编辑器中都可以做到,但 pc-selection-mode 不允许你这样做。
我发现这个website 有一个shift_mark.el 文件,我可以用它来设置我想要的所有键绑定。我已将.xemacs/init.el 文件放入以加载shift_mark.el。
这是错误:
Warning (initialization): An error occurred while loading `/home/theory/phrkaj/\
.xemacs/init.el':
Wrong type argument: arrayp, (shift right)
所以我用--debug-init 运行Emacs 来尝试找出问题所在。这是调试器想出的:
Debugger entered--Lisp error: (wrong-type-argument arrayp (shift right))
signal(wrong-type-argument (arrayp (shift right)))
global-set-key((shift right) shift-mark-forward-char)
eval-buffer(#<buffer *load*<3>> nil "/home/theory/phrkaj/shift_mark.el" nil t) ; Reading at buffer position 1476
load-with-code-conversion("/home/theory/phrkaj/shift_mark.el" "/home/theory/phrkaj/shift_mark.el" nil nil)
load("~/shift_mark.el")
eval-buffer(#<buffer *load*<2>> nil "/home/theory/phrkaj/.xemacs/init.el" nil t) ; Reading at buffer position 25
load-with-code-conversion("/home/theory/phrkaj/.xemacs/init.el" "/home/theory/phrkaj/.xemacs/init.el" nil nil)
load("/home/theory/phrkaj/.xemacs/init.el" nil nil t)
load-file("/home/theory/phrkaj/.xemacs/init.el")
eval-buffer(#<buffer *load*> nil "/home/theory/phrkaj/.emacs" nil t) ; Reading at buffer position 253
load-with-code-conversion("/home/theory/phrkaj/.emacs" "/home/theory/phrkaj/.emacs" t t)
load("~/.emacs" t t)
#[nil "^H\205\264^@ \306=\203^Q^@\307^H\310Q\2027^@ \311=\2033^@\312\307\313\314#\203#^@\315\2027^@\312\307\313\316#\203/^@\317\2027^@\315\2027^@\307^H\320Q^Z\321^S\322\n\321\211#\210^K\321=\203_^@\323\324\325\307^H\326Q!\"^\\322\f\$
command-line()
normal-top-level()
这是shift_mark.el 文件的一部分,它定义了向前突出显示一个字符:
(defun shift-mark-forward-char ()
(interactive)
(shift-mark 'forward-char))
(global-set-key '(shift right) 'shift-mark-forward-char)
感谢任何帮助。
【问题讨论】:
-
您使用的是什么版本的 Emacs?您的帖子在 GNU Emacs 和 XEmacs 之间看起来不一致。此外,在我没有设置的 XEmacs 21 和带有
pc-selection-mode的 GNU Emacs 23 下,Ctrl+Shift+Down确实可以按照您的要求工作。如果您启动emacs -q或xemacs -q(即不加载配置文件),它对您有用吗?
标签: emacs lisp key-bindings