在emacs中分割缓冲区后如何切换焦点?

在emacs中分割缓冲区后如何切换焦点?,emacs,window,split,emacs23,Emacs,Window,Split,Emacs23,我希望在拆分窗口(C-x3或C-x2)后,能够自动到达新打开的缓冲区中的光标(当前缓冲区除外)。我如何实现这种行为 您可以使用C-x o在缓冲区之间切换。至于自动执行此操作,我认为没有现成的命令。您可以这样执行: (global-set-key "\C-x2" (lambda () (interactive)(split-window-vertically) (other-window 1))) (global-set-key "\C-x3" (lambda () (interactive)(s

我希望在拆分窗口(
C-x3
C-x2
)后,能够自动到达新打开的缓冲区中的光标(当前缓冲区除外)。我如何实现这种行为

您可以使用
C-x o
在缓冲区之间切换。至于自动执行此操作,我认为没有现成的命令。

您可以这样执行:

(global-set-key "\C-x2" (lambda () (interactive)(split-window-vertically) (other-window 1)))
(global-set-key "\C-x3" (lambda () (interactive)(split-window-horizontally) (other-window 1)))

在Emacs 24.3.1中,如果您更改
0

的参数
1
,它就可以工作!!!不要使用这个答案
--正如评论中指出的,建议
拆分窗口
可能会导致不良副作用

我推荐博日达尔·巴佐夫的答案


将以下内容放入.emacs文件中:

(defadvice split-window (after move-point-to-new-window activate)
  "Moves the point to the newly created window after splitting."
  (other-window 1))

除了使用C-x 2或C-x 3手动拆分帧外,缓冲区有时也会自动“弹出”。默认情况下,这些也不会被选中/激活

可以通过更改用于拆分窗口的函数来解决此问题。默认设置为
splitwindowsensibly
,但您可以将其设置为自己的函数,该函数将调用
splitwindowsensibly
,然后选择缓冲区

然而,不幸的是,当您点击minibuffer中的TAB时,这会产生选择
*Completions*
缓冲区的副作用。因此,在这种情况下,检查minibuffer是否处于活动状态且未切换是值得的。我敢打赌还有其他类似的不受欢迎的情况。当我找到他们时,我会尝试更新这篇文章

;;自动分割帧后,切换到新窗口(除非
;在小型缓冲区中)
(setq分割窗口首选函数“我的/分割窗口函数”)
(取消我的/拆分窗口功能(&可选窗口)
(让((新窗口(敏感地拆分窗口)))
(如果(不是)(活动的微缓冲区窗口))
(选择窗口(新建窗口)))

(与Emacs 24.5.1一起使用。)

我的想法是,在
分割窗口之后,您希望跟踪该窗口的时间是在它具有相同的缓冲区时,如以下代码所示:

(取消拆分窗口--选择窗口(原始函数和rest参数)
“切换到“拆分窗口”后的其他窗口”
(let((当前窗口(选定窗口))
(新窗口(应用原始函数参数)))
(当(相等(窗口缓冲区当前窗口)(窗口缓冲区新窗口))
(选择窗口新建窗口))
新窗口)
(建议添加“拆分窗口:围绕#”拆分窗口--选择窗口)

简单

谢谢你的帮助。在我目前的设置中,我使用S-在可见缓冲区之间移动,自动的东西是我感兴趣的。谢谢!这正是我想要的!据观察,这将使欧洲央行陷入困境。至少在我的设置中是这样的。如果你有两个垂直分割的缓冲区,然后在一个(组织)中执行“组织计划”-你将有一个日历错误buffer@Sergey什么样的虫子?如果在拆分后手动切换缓冲区,而不是使用上述代码,您会得到不同的行为吗?@Thomas,它会打开日历,但光标在缓冲区中不可见,它还会用3个月的日历缓冲区内容替换我的组织文件(因此我最后有2-3个不工作的日历缓冲区),这打破了ispell单词(
M-$
),因为它不希望它在它创建的ispell缓冲区中有点。我认为Bozhidar Batsov的解决方案只是更改用户键盘快捷键是一个更好的方法。这里输入的小错误。它是
水平拆分窗口
,而不是
水平拆分窗口
。尝试编辑但没有权限。我应该吗摩根,我下面的答案很不幸会导致严重的副作用,因此我想收回它。不幸的是,我不能这么做,只要它是公认的答案。你能不能取消接受它,这样我就可以删除它?谢谢。C-x 4f不是你要的但这是一个非常方便的提示。