首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在2个窗口emacs中交换缓冲区

在Emacs中,交换两个窗口的缓冲区可以通过以下步骤实现:

  1. 首先,确保你有两个窗口打开,每个窗口都显示不同的缓冲区。
  2. 将光标移动到第一个窗口,并按下C-x b,这将打开缓冲区列表。
  3. 在缓冲区列表中,使用C-nC-p来选择要交换的缓冲区。
  4. 按下C-x C-b,这将打开窗口列表。
  5. 在窗口列表中,使用C-nC-p来选择要交换缓冲区的窗口。
  6. 按下C-x b,这将选择要交换的缓冲区。
  7. 按下C-x o,这将交换选定的缓冲区。

现在,两个窗口的缓冲区已经交换。

这个过程可以用一个Emacs Lisp函数来实现:

代码语言:lisp
复制
(defun swap-windows-buffers ()
  "Swap the buffers of two windows."
  (interactive)
  (let ((buf1 (window-buffer (selected-window)))
        (buf2 (window-buffer (next-window (selected-window)))))
    (set-window-buffer (selected-window) buf2)
    (set-window-buffer (next-window (selected-window)) buf1)))

要使用此函数,请将其添加到Emacs配置文件中,并使用M-x swap-windows-buffers命令来调用它。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

10 个让你进入 Emacs 世界的技巧

例如,如果你不知道如何在 Emacs 只用键盘快捷键复制一个单词,编辑菜单的复制、剪切和粘贴选择提供了最轻松的路径。没有理由因为选择了 Emacs 而惩罚自己。...使用它的菜单,用鼠标选择区域,点击缓冲区内的按钮,不要让陌生感阻碍你的工作效率。 image.png 这些功能被内置到 Emacs ,是因为用户在使用它们。...在 Emacs ,“框架”就是现代计算机所说的“窗口”。 缓冲区(Buffer):“缓冲区”是 Emacs 的一个通信通道。...它可以作为 Emacs 进程的命令行,也可以作为 shell,或者只是一个文件的内容。 窗口(Window):“窗口”是你进入一个缓冲区的视角。 迷你缓冲区(Mini-buffer)。...如果你按几下 C-g,Emacs 的迷你缓冲区就会回到潜伏状态,弹出窗口被隐藏,你又回到了一个普通的、无聊的文本编辑器的安全状态。

80320

Emacs 快捷键

Emacs 搜索和替换命令 绑定 命令或者函数 描述 C-s [字符串 ] [C-w ] [C-y ] isearch-forward 前向增量地在整个缓冲区搜索字符串(在缺省情况下,将搜索您上一次给出的搜索字符串...高级 Emacs 标记和选择命令 键盘输入 功能 描述 C-u C-space 移动到标记环中的前一个标记。 C-x C-x exchange-point-and-mark 交换光标和标记的位置。...(如果仅存在一个窗口,那么垂直地划分该窗口以显示另一个缓冲区。) find-file-other-window C-x 4 f 在新的缓冲区打开新的文件,在新的垂直窗口中绘制它。...find-file-read-only-other-window C-x 4 r 在一个新的只读缓冲区打开新的文件,在新的垂直窗口中绘制它。...当它在缓冲区处于打开状态时,将所有显示该缓冲区窗口连接为一个较大的虚拟窗口

2K20
  • 无插件Vim编程技巧

    ,这些文件都在缓冲区。...,我们还可以看到5有一个%a,这表示当前文件,相关的标记如下: – (非活动的缓冲区) a (当前被激活缓冲区) h (隐藏的缓冲区) % (当前的缓冲区) # (交换缓冲区) = (只读缓冲区...) + (已经更改的缓冲区窗口分屏浏览 相信你在《Vim的窗口分屏》一文,你已经知道了怎么拆分窗口了。...: 把当前窗口上下分屏,并在下面进行目录浏览: :He   全称为 :Hexplore  (在下边分屏浏览目录) 如果你要在上面,你就在 :He后面加个 !, :He!  ...vim的终级插件 CentOS下:yum erase emacs Ubuntu下:apt-get remove emacs 对了,以前本站也有一篇小短文《如何在vim得到你最喜爱的IDE特性》你也可以看看

    1.4K20

    linux之文本编辑器

    另一个有趣的功能是vim支持从右到左输入字符,这在使用一些特殊语言(Farsi)进行编程时是比较有用的。在vim,我们还可以使用多窗口显示,在一个屏幕同时对多个文件进行操作。...启动了功能菜单的emacs 很多UNIX程序员每天开机的第一件事就是打开emacs,看看自己的邮箱,然后开始编程工作,看其他人在News Group讨论问题…emacs就是他们的一天,难怪有人说emacs...粘贴和复制 从正文中删除的内容(字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区。用户可将其粘贴到正文中的指定位置。...xp 当前的字符与后一个字符交换位置。 ddp 光标所在行的上下两行交换位置。 J 将光标所在的上下两行合并。...在Windows窗口中的Linux文档 DOS文件,列的结束符号有两个控制字符,一个是归位字符 (carriage return,^M),另一个是换列字符(new line,^J)。

    2.2K20

    Emacs Lisp2

    Emacs: (在windows可以双击emacs图标,在Linux可以输入% emacs & ),;; 然后在键盘上键入q 跳过系统欢迎的信息,;; 先观察在Emacs屏幕的底部,会给出一堆关于当前的工作情况的信息...;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区,;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程的lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下,;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...;; 如果不希望Emacs缓冲区插入计算结果,我们还可以在表达式的末尾使用C-x C-e组合键;; C-x C-e的意思是: 先按下Ctrl-x 再按下Ctrl-e ;; 这个命令会让Emacs在辅助缓冲区...,也就是Emacs窗口的最底部那行显示计算结果;; ELisp的赋值函数是是setq,下面的表达式给变量my-name赋值"Bastien"(setq my-name "Bastien");; ^ 把光标停在这里

    98040

    Emacs Lisp

    ; 第一步首先启动Emacs: (在windows可以双击emacs图标,在Linux可以输入% emacs & ), ;; 然后在键盘上键入q 跳过系统欢迎的信息, ;; 先观察在Emacs屏幕的底部...;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区, ;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程的lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...;; 如果不希望Emacs缓冲区插入计算结果,我们还可以在表达式的末尾使用C-x C-e组合键 ;; C-x C-e的意思是: 先按下Ctrl-x 再按下Ctrl-e ;; 这个命令会让Emacs...在辅助缓冲区,也就是Emacs窗口的最底部那行显示计算结果 ;; ELisp的赋值函数是是setq,下面的表达式给变量my-name赋值"Bastien" (setq my-name "Bastien

    2.3K40

    Emacs Lisp

    ; 第一步首先启动Emacs: (在windows可以双击emacs图标,在Linux可以输入% emacs & ), ;; 然后在键盘上键入q 跳过系统欢迎的信息, ;; 先观察在Emacs屏幕的底部...;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区, ;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程的lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...;; 如果不希望Emacs缓冲区插入计算结果,我们还可以在表达式的末尾使用C-x C-e组合键 ;; C-x C-e的意思是: 先按下Ctrl-x 再按下Ctrl-e ;; 这个命令会让Emacs...在辅助缓冲区,也就是Emacs窗口的最底部那行显示计算结果 ;; ELisp的赋值函数是是setq,下面的表达式给变量my-name赋值"Bastien" (setq my-name "Bastien

    2.2K30

    用了VS Code、IDEA等十几款编辑器后,我总结出优秀编辑器的特质

    它有几种模式,具体取决于你要执行的移动类型: 按行:此模式允许你跳至当前(或所有打开的)缓冲区的任何行。 按单词:此模式允许你跳转到当前(或所有打开的)缓冲区的任何“单词”。...按字符:如果单词模式无法跳转到特殊的运算符或字符(因为无法识别为单词),则可以使用此模式跳转到当前缓冲区(或所有打开的缓冲区的任何字符。...宏和寄存器:我可以指定单个按键将内容粘贴到不同的寄存器(剪贴板)。...例如,如果你将一个窗口分成两个缓冲区,则你想要调用的垂直“标记”“边缘”都是实际的 Unicode 字符。终端的工作机制可以忽略那些字符,但仍会给人很笨的感觉。...在我看来,一个好的 Neovim 客户端可能是像 emacs 这样的 gtk 应用程序:流畅、统一、具有出色的默认设置和对 neovim 功能的全面支持,以及对 gtk 浮动窗口和弹出窗口的支持(因为它是

    1.8K10

    对 Mastering Emacs作者 Mickey Petersen 的采访

    Emacs 当然可以*做*两者,但当时默认情况下并未启用它们。 在此过程,我尝试了各种包、窗口管理器等。他们花了很长时间来编译,但那时候——作为一个孩子/青少年——你有很多时间,所以这并不重要。...为此,我编写了几行代码将 Emacs 的各个部分粘合在一起。我按下一个按钮,Emacs 使用 TRAMP 连接到远程服务器并调用它需要调用的程序,然后将结果显示在 Emacs 缓冲区。...我主要使用普通的 Emacs 键绑定,并进行了一些更改以使某些事情更容易接受。M-o而不是C-x o; C-x C-k杀死当前缓冲区;F1 打开Mx外壳;和其他一些小事。...我还将 IDO 用于文件和缓冲区,将 Selectrum 用于通用完成。 除了 Emacs,您还使用什么工具和装备(硬件、软件或想到的任何其他东西)?...一个巨大的 Emacs 框架,我可以轻松地将其拆分为多个窗口。 除了工具,还有哪些习惯和惯例可以帮助您完成工作? 我很少完成我的工作。除非有人付钱给我,否则!

    72710

    Emacs 29快到了!我们能期待什么

    在我的例子,当缓冲区的内容更新时,我有时会看到一些幻影文本(尽管我仍然需要纯 GTK,因为我在 Xorg 和 Wayland 之间交替)。...(说真的,我应该有一天去看看 HaikuOS) 此外,它还支持一个可选的窗口系统端口到 Haiku,带有--with-be-app..../usr/bin/emacs -x,Emacs 不会读取它的 init 文件( with -Q),而是会立即执行 Elisp 代码并将最后一个值返回给脚本的调用者(很可能是您调用脚本的 shell从)...更好的鼠标和触摸板支持 Emacs 现在使用 XInput 2,它使 Emacs 能够支持更多的输入事件,例如触摸板事件。例如,默认情况下,触摸板上的捏合手势会增大或减小当前缓冲区的文本大小。...现在会导致一些与表情符号相关的新命令: C-x 8 e e或者C-x 8 e i 插入表情符号 ( emoji-insert) C-x 8 e s 搜索表情符号 ( emoji-search) C-x 8 e l 列出新缓冲区的所有表情符号

    2.5K20

    vim 的各种用法,很实用哦,都是本人是在工作中学习和总结的

    那么答案,就是vim或者Emacs。而这一套连续的博文,就为您介绍vim编辑器。至于另一款强大的编辑器Emacs,我们会在今后的一个系列博文中看到。 2、配置文件在哪?...3、vimRC的RC是什么意思? 为什么把这么个没有意义的问题也列出来?原因很简单,就是我在接触vim之初第二个想问的问题就是这个(第一个就是上面的“1”)。...Ctrl+w k 光标移动到上一缓冲区 Ctrl+w l 光标移动到右一缓冲区 Ctrl+w h 光标移动到左一缓冲区 Ctrl+w v 左右切割窗口新建缓冲区...Ctrl+w s 上下切割窗口新建缓冲区 Ctrl+w o 使光标所在缓冲区最大化,其他缓冲区隐藏 (六)常用搜索与书签操作快捷键 1....(3)交换文件是无法加密的。这样引起什么问题?问题就是如果其他用户想办法读取到了你的交换文件,就可以绕过解密环节,你的加密也就无意义了。解决的办法就是,不使用交换文件。

    81220

    《Linux命令行与shell脚本编程大全》第十章 使用编辑器

    退出vi: q:如果未修改缓冲区数据,退出 q!...:取消所有对缓冲区数据的修改并退出 wq:保存到文件并退出 w filename:将文件保存到另一个文件 还有一个shift + z + z:也是保存退出 一些其他命令: G:跳到最后一行 Num ...old/new/g  替换整个文件的old :%s/old/new/gc   替换整个文件的old,并且每次出现时提示 10.2 nano编辑器 没用过,电脑里也没有,就简单看一下 注意:nano编辑器窗口底部显示了各个命令以及简要的概述...10.3 emacs编辑器 出现比Unix还早。之前也是控制台编辑器,现在已经迁移到图形化世界了。...也可以从view菜单启动side Pane 还可以设定偏好设置。Preferances菜单项。

    1.3K80

    Vim常用快捷键

    上翻半页(up) ctrl-d 下翻半页(down) ctrl-f 上翻一页(forward) ctrl-b 下翻一页(backward) w 跳到下一个字首,按标点或单词分割 W 跳到下一个字首,长跳,end-of-line...l 跳转到右边的窗口 ctrl-w t 跳转到最顶上的窗口 ctrl-w b 跳转到最底下的窗口 八、多标签编辑 :tabedit file 在新标签打开文件file :tab split file...make指令 十、VIM启动项 -o[n] 以水平分屏的方式打开多个文件 -O[n] 以垂直分屏的方式打开多个文件 十一、自动排版 在粘贴了一些代码之后,vim变得比较乱,只要执行gg=G就能搞定 十二、如何在...vim编译程序 在vim可以完成make,而且可以将编译的结果也显示在vim里,先执行 :copen 命令,将结果输出的窗口打开,然后执行 :make 编译后的结果就显示在了copen打开的小窗口里了...十三、buffer操作 buffer状态 - (非活动的缓冲区) a (当前被激活缓冲区) h (隐藏的缓冲区) % (当前的缓冲区) # (交换缓冲区) = (只读缓冲区) + (已经更改的缓冲区

    1.8K00

    VIM常用快捷键(转载)

    上,下,左,右 ctrl-e 移动页面 ctrl-f 上翻一页 ctrl-b 下翻一页 ctrl-u 上翻半页 ctrl-d 下翻半页 w 跳到下一个字首,按标点或单词分割 W 跳到下一个字首,长跳,end-of-line...l 跳转到右边的窗口 ctrl-w t 跳转到最顶上的窗口 ctrl-w b 跳转到最底下的窗口 多标签编辑 :tabedit file 在新标签打开文件file :tab split file 在新标签打开文件...直接在当前目录下运行make指令 VIM启动项 -o[n] 以水平分屏的方式打开多个文件 -O[n] 以垂直分屏的方式打开多个文件 自动排版 在粘贴了一些代码之后,vim变得比较乱,只要执行gg=G就能搞定 如何在...vim编译程序 在vim可以完成make,而且可以将编译的结果也显示在vim里,先执行 :copen 命令,将结果输出的窗口打开,然后执行 :make 编译后的结果就显示在了copen打开的小窗口里了...buffer操作 buffer状态 (非活动的缓冲区) a (当前被激活缓冲区) h (隐藏的缓冲区) % (当前的缓冲区) # (交换缓冲区) = (只读缓冲区) + (已经更改的缓冲区) VIM

    1.7K20

    超全的Vim常用快捷键,建议收藏备用!

    上翻半页(up) ctrl-d 下翻半页(down) ctrl-f 上翻一页(forward) ctrl-b 下翻一页(backward) w 跳到下一个字首,按标点或单词分割 W 跳到下一个字首,长跳,end-of-line...l 跳转到右边的窗口 ctrl-w t 跳转到最顶上的窗口 ctrl-w b 跳转到最底下的窗口 八、多标签编辑 :tabedit file 在新标签打开文件file :tab split file...make指令 十、VIM启动项 -o[n] 以水平分屏的方式打开多个文件 -O[n] 以垂直分屏的方式打开多个文件 十一、自动排版 在粘贴了一些代码之后,vim变得比较乱,只要执行gg=G就能搞定 十二、如何在...vim编译程序 在vim可以完成make,而且可以将编译的结果也显示在vim里,先执行 :copen 命令,将结果输出的窗口打开,然后执行 :make 编译后的结果就显示在了copen打开的小窗口里了...十三、buffer操作 buffer状态 - (非活动的缓冲区) a (当前被激活缓冲区) h (隐藏的缓冲区) % (当前的缓冲区) # (交换缓冲区) = (只读缓冲区) + (已经更改的缓冲区

    19.4K21

    运维锅总详解计算机缓存

    交换机缓存(Switch Buffer): 交换机内的缓存,用于暂时存储数据帧以防止拥塞。 例子:交换机使用缓冲区来存储数据帧,确保高流量时数据不丢失。...作用:滑动窗口机制确保发送方不会超过接收方的处理能力,防止网络拥塞。 实现:发送方根据接收方的窗口大小(由ACK包窗口字段确定)调整发送数据的数量。...优化:滑动窗口大小动态变化,通过算法(拥塞避免和快速恢复)优化网络传输性能。 3....四、从操作系统的角度看缓存 以下是一些操作系统缓存机制的具体实现示例,展示了如何在内存实现这些缓存来提高性能。 1....PROT_WRITE); 交换缓存(Swap Cache) 实现示例: Linux:在Linux交换缓存机制用于缓存交换空间中的数据。

    13410

    网络编程(二).UDP

    udpclient.x udpclient.c emacs@ubuntu:~/c$ 此时系统并没有开放9000端口 emacs@ubuntu:~/c$ netstat -anu | grep 9000.../udpserver.x 此时系统多了一个9000端口 emacs@ubuntu:~/c$ netstat -anu | grep 9000 udp 0 0 0.0.0.0:.../udpserver.x i:8786 recvbytes:860 emacs@ubuntu:~/c$ diff /tmp/x.download 4.png emacs@ubuntu:~/c$ 编译执行过程没有报错...__n 缓冲区长度 __flags 调用操作方式 __addr (可选)指针,指向装有源地址的缓冲区 __addr_len (可选)指针,指向__addr缓冲区长度值 返回值:>0 返回读入的字节数;...__n buf缓冲区数据的长度 __flags 调用方式标志位 __addr (可选)指针,指向目的套接口的地址 __addr_len 所指地址的长度 返回值 :>0 返回所发送数据的总数(请注意这个数字可能小于

    64120

    Top 10 JavaScript编辑器,你在用哪个?

    Sublime Text 如果你想要一个灵活、强大、可扩展的文本编辑器,它能够闪电般快速运行,并且支持切换到其它窗口进行代码检查、调试和部署,那么可以考虑使用Sublime Text。...此外,Visual Studio Code可以与外部任务运行程序(gulp和jake)进行可定制的集成。...它具有将选择或查找结果复制到新缓冲区的提取功能,以及剪切功能。BBEdit可以编辑和运行Perl,Python,Ruby,和Shell脚本,以及检查Perl和Python脚本的语法。...Emacs作为JavaScript编辑器,编辑JavaScript的默认模式是在js包,使用Emacs可以获得更好的语法高亮和linting。...Emacs使用js2模式包,并使用ac-js2自动完成。在Emacs,你可以使用串行模式获取实时浏览器JavaScript,HTML和CSS交互。

    3.2K10

    vim编辑器使用方法

    概述 vim编辑器是linux下享有盛誉的文本编辑器,据说世界上的程序员只用三种编辑器,Vim(编辑器之神), Emacs(神的编辑器), 其他编辑器。...跳转至由#指定行; G:最后一行; 1G, gg: 第一行; 句间移动: ) ( 段落间移动: } { vim的编辑命令 字符编辑 x: 删除光标处的字符; #x: 删除光标处起始的#个字符; xp: 交换光标所在处的字符及其后面字符的位置...,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面; P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面; 复制命令(y, yank): y: 复制,...: 向文件首部翻一屏; Ctrl+d: 向文件尾部翻半屏; Ctrl+u:向文件首部翻半屏; vim自带的练习教程 [root@senlong tmp]# vimtutor # 显示vim文档 vim的末行模式...-o: 水平分割 -O: 垂直分割 在窗口间切换:Ctrl+w,w 单文件窗口分割: Ctrl+w,s: split, 水平分割 Ctrl+w,v: vertical, 垂直分割 定制vim的工作特性

    79730
    领券