emacs超级密钥作为windmove的修饰符

时间:2014-03-08 21:06:37

标签: emacs elisp org-mode

一直使用 wind-move 程序包切换点黑白窗口。 windmove-default-keybindings 函数的一个问题是,shift用作修饰符, org-mode 抓取左移,右移,上移,下移键。如何将 Hyper 键(windows-logo键)设置为修饰符。 windmove包使用以下代码来设置默认绑定。

(defun windmove-default-keybindings (&optional modifier)
  "Set up keybindings for `windmove'.
Keybindings are of the form MODIFIER-{left,right,up,down}.
Default MODIFIER is 'shift."
  (interactive)
  (unless modifier (setq modifier 'shift))
  (global-set-key (vector (list modifier 'left))  'windmove-left)
  (global-set-key (vector (list modifier 'right)) 'windmove-right)
  (global-set-key (vector (list modifier 'up))    'windmove-up)
  (global-set-key (vector (list modifier 'down))  'windmove-down))

2 个答案:

答案 0 :(得分:3)

正如您在函数中看到的,您可以将修饰符名称传递给windmove-default-keybindings。在这种情况下:

(windmove-default-keybindings 'hyper)

您可以使用以下方式确认这是有效的:

CX @ ħ &LT;最多&GT; /&LT;向下&GT; /&LT;左&GT; /&LT;右&GT; < / KBD>

如果您的超级修饰符有效,那么您当然可以使用:

&lt; H-up&gt; / &lt; H-down&gt; / &lt; H-left&gt; / &lt; H-右&GT;

(或者你可以直接绑定那些,类似于lawlist的答案; windmove只提供函数参数作为方便)

答案 1 :(得分:1)

在OSX Snow Leopard 10.6.8上通过Parallels Desktop(build 6.0.12090)在Windows XP Professional(Service Pack 3)上测试的解决方案 - 使用2013年的GNU Emacs 24.3.1(i386-mingw-nt5.1.2600) - 3月17日在MARVIN。

(setq w32-lwindow-modifier 'super)

(setq w32-rwindow-modifier 'super)

(global-set-key (kbd "<s-up>") 'windmove-up)

(global-set-key (kbd "<s-down>") 'windmove-down)

(global-set-key (kbd "<s-left>") 'windmove-left)

(global-set-key (kbd "<s-right>") 'windmove-right)