emacs切换窗口到C-TAB和C-S-TAB

时间:2010-02-26 13:00:39

标签: emacs

我在这里看到有关使用C-x oM-- C-x o将光标从一个窗口移动到另一个窗口的问题。细

我想将其映射到C-TABC-S-TAB

这是我添加到我的.emacs中的内容:

(global-set-key [C-tab] 'other-window)
(global-set-key [C-S-tab] '(other-window -1))

C-tab有效,但不是C-S-tab

迷你缓冲器告诉我:

Wrong type argument: commandp, (other-window -1)

我试过没有围绕其他窗口的括号,但这也不起作用。

简而言之,我不确定如何将可选参数传递给我的.emacs中的函数。

请帮帮忙?

编辑以添加版本: (Windows上的emacs 22.3.1)

3 个答案:

答案 0 :(得分:7)

(global-set-key [C-S-tab] 
    (lambda ()
      (interactive)
      (other-window -1)))

编辑:在(interactive)中添加,根据Gauthier和Peter Hart。

答案 1 :(得分:5)

我在手机上,我不记得确切的按键顺序,但你可以在我的init.el文件或Ch k CS-TAB中找到它,所以emacs给你打电话“<你看的按键顺序因为>没有绑定任何“或类似的东西。 http://pablo.rauzy.name/init.el.html: - )

编辑:所以我现在在我的电脑上,这是一个简单的方法:

(global-set-key [C-tab] 'next-buffer)
(global-set-key [C-S-iso-lefttab] 'previous-buffer)

答案 2 :(得分:2)

为了详细阐述马修的答案,我最近为这样的情况编写了一个小助手宏:

(defmacro global-set-key* (keys &rest body)
  `(global-set-key ,keys (lambda () (interactive) ,@body))

这样我可以写下这样的话:

(global-set-key* [(shift control n)] (next-line) (scroll-up 1))
(global-set-key* [(shift control p)] (previous-line) (scroll-down 1))