在 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即可。

相关推荐
dz小伟4 小时前
vim的配置
linux·编辑器·vim
ykjhr_3d12 小时前
结构可视化:利用数据编辑器剖析数据内在架构
编辑器
LXL_2413 小时前
如何安装不同版本的ESP-IDF,并配置Vscode插件,以及在Vscode中切换版本
ide·vscode·编辑器
fengyehongWorld15 小时前
对日开发 TeraTerm ttl脚本开发环境配置
编辑器·tera term
kaiyuanheshang16 小时前
关于VScode的调试
ide·vscode·编辑器·debug·调试
wenbodong20 小时前
vim 查看复杂的宏扩展
编辑器·vim
windwind200021 小时前
发行基础:本地化BUG导致审核失败
游戏·青少年编程·编辑器·bug·创业创新·玩游戏
是大糊涂不聪明21 小时前
VSCode远程无法选择虚拟环境问题
ide·vscode·编辑器
视频砖家1 天前
VSCode如何解决打开html页面中文乱码的问题
vscode·编辑器·vscode乱码·vscode中文乱码
scdifsn2 天前
动手学深度学习12.1. 编译器和解释器-笔记&练习(PyTorch)
pytorch·笔记·深度学习·编辑器·解释器·命令式编程·符号式编程