Emacs在指定方向上移动分割窗口?

d11*_*wtq 17 emacs

在Terminal Emacs(没有鼠标)中,我使用分割窗口同时处理多个缓冲区.我发现在分割窗口之间移动比在Vim中做的更痛苦.阅读文档看起来我正确地做了(C-x o),但这只是顺时针方向围绕窗口循环.如果我移动到相邻的窗口进行快速编辑,我需要C-x o在我回到原地之前打几次.有时候我不小心匆匆按了很多次,不得不再次循环通过窗户.

远离安装还有另一个外部包,有没有什么方法可以直接移动到一个窗口(例如,一个数字),或者至少在相反方向的窗口周围?

在Vim C-w C-w中就像C-x o在Emacs中一样,但是也有C-w ARROW朝着指定的方向移动...类似的东西?:)

phi*_*ils 26

将其添加到您的init文件中:

(windmove-default-keybindings)
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以指定方向移动到下一个相邻窗口.SHIFT+arrow

如果您愿意,可以通过传递参数(默认为'shift)来指定其他修饰符.

或者只是将你喜欢的东西绑定到这些函数:

  • windmove-up
  • windmove-down
  • windmove-left
  • windmove-right

您还可以将FrameMove添加到混合中,以使其在多个帧中透明地工作.

对于带编号的窗口导航,有switch-window.el.

  • 由于OP明确指出Emacs是在终端中运行的,因此值得注意的是,"Shift + UP"在基于xterm的仿真器中不起作用,包括gnome-terminal和终结器.有关详细信息,请参阅[相关问题](http://stackoverflow.com/questions/10871745/shift-up-arrow-doesnt-highlight-text-emacs-iterm2). (2认同)

jam*_*her 5

将其添加到您的初始化文件中(例如~/.emacs):

(windmove-default-keybindings)
Run Code Online (Sandbox Code Playgroud)

然后朝那个方向移动到窗口。SHIFT+arrow