我在这里看到有关使用C-x o
和M-- C-x o
将光标从一个窗口移动到另一个窗口的问题。细
我想将其映射到C-TAB
和C-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)
答案 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))