我想模仿Alt-Tab,因为它适用于GTK上的各个窗口,但是在emacs的缓冲区中使用Ctrl-Tab。
所以,例如,如果我在emacs中打开了10个缓冲区,而我现在正在处理两个缓冲区,比如说Buffer1和Buffer2,我现在在Buffer1中,我想让Ctrl-Tab带我去Buffer2 ,再次按Ctrl-Tab,返回Buffer1。
如果我需要转到Buffer3或Buffer4等,按Tab键时按住Ctrl键。
这有意义吗?如果是这样,请告诉我如何做到这一点。
答案 0 :(得分:6)
你目前在使用什么?
但我认为
(global-set-key (kbd "C-<tab>") 'next-buffer)
(global-set-key (kbd "C-S-<tab>") 'previous-buffer)
应该做你所描述的。
正如jaybee评论的那样,它可能比Firefox更有用。但我建议ido-switch-buffer
。
这也可能是有意义的:http://www.emacswiki.org/emacs/ControlTABbufferCycling
答案 1 :(得分:3)
我认为 swbuff 效果很好。请参阅http://www.emacswiki.org/emacs/SwBuff。
来自我的初始文件:
(require 'swbuff)
(global-set-key [(control tab)] 'swbuff-switch-to-next-buffer)
答案 2 :(得分:2)
在两个最近的缓冲区之间切换
(global-set-key [\C-tab]
(lambda () (interactive)
(switch-to-buffer (other-buffer))))
答案 3 :(得分:2)
我很满意这个设置:
(defun next-line-cycle ()
"Go to next line. Go to first line if end is reached."
(interactive)
(revert-buffer)
(if (= (line-number-at-pos) (count-lines (window-start) (window-end)))
(backward-page)
(forward-line)))
(defun ctrltab ()
"List buffers and give it focus"
(interactive)
(if (string= "*Buffer List*" (buffer-name))
(next-line-cycle)
(progn (list-buffers)
(switch-to-buffer "*Buffer List*")
(delete-other-windows)
(forward-line))))
(global-set-key [C-tab] 'ctrltab)
使用模式:
* hold ctrl, press <tab> once, keep holding ctrl
* press 'm' to view currently selected buffer
* press <tab>(possibly more times) to select next buffer
当您不想输入要切换的缓冲区名称(例如,ido-mode)时,这很有效 (也许右手拿一杯咖啡)。
答案 4 :(得分:2)
听起来你想尝试iflipb:
(require 'iflipb)
(global-set-key (kbd "<C-tab>") 'iflipb-next-buffer)
(global-set-key (kbd "<C-S-iso-lefttab>") 'iflipb-previous-buffer)