在 emacs 中如何将窗口的垂直分割改为水平分割

文章目录

<2022-08-25 周四>

emacs中如何将窗口的垂直分割改为水平分割

emacs没有原生支持,所以抄了一个函数,如下:

emacs-lisp 复制代码
;;; https://www.emacswiki.org/emacs/ToggleWindowSplit
(defun toggle-window-split ()
  (interactive)
  (if (= (count-windows) 2)
      (let* ((this-win-buffer (window-buffer))
             (next-win-buffer (window-buffer (next-window)))
             (this-win-edges (window-edges (selected-window)))
             (next-win-edges (window-edges (next-window)))
             (this-win-2nd (not (and (<= (car this-win-edges)
                                         (car next-win-edges))
                                     (<= (cadr this-win-edges)
                                         (cadr next-win-edges)))))
             (splitter
              (if (= (car this-win-edges)
                     (car (window-edges (next-window))))
                  'split-window-horizontally
                'split-window-vertically)))
        (delete-other-windows)
        (let ((first-win (other-window 1)))
          (funcall splitter)
          (if this-win-2nd
              (other-window 1))
          (set-window-buffer (selected-window) this-win-buffer)
          (set-window-buffer (next-window) next-win-buffer)
          (if this-win-2nd
              (other-window 1))))))

emacs如何将两个窗口的内容交换?调用M-x window-swap-states即可。

相关推荐
学习3人组21 小时前
Node.js模块化开发实训案例
node.js·编辑器·vim
YoungHong19921 天前
一行配置解决claude code 2.0版本更新后 vscode 插件需要登录的问题
ide·vscode·编辑器
shimly1234561 天前
vscode 指定连接其它版本的 linux
ide·vscode·编辑器
vortex52 天前
vscode-background 扩展的原理、配置和使用
ide·vscode·编辑器
Ching·2 天前
RK3568入门之VScode远程连接开发板,直接开发板上面编程和实验
linux·ide·vscode·编辑器·rk3568
进击的_鹏3 天前
【Linux】vim的操作大全
linux·编辑器·vim
bryant_meng3 天前
【VSCode】Visual Studio Code
ide·vscode·编辑器·ssh·debug
wulaladamowang4 天前
日常踩雷系列-vscode无法输入中文
ide·vscode·编辑器
徐归阳4 天前
DevEco Studio安装
编辑器·harmonyos
HBR666_4 天前
AI编辑器(FIM补全,AI扩写)简介
前端·ai·编辑器·fim·tiptap