Emacs 中的缓冲区循环:避免划伤和消息缓冲区

2024-03-01

您好,我已打开缓冲区循环,将以下命令放入我的 .emacs 中

(global-set-key (kbd "<C-tab>") 'bury-buffer)

但是在循环时如何避免循环遍历消息和临时缓冲区 始终存在于任何 emacs 缓冲区列表中。我从不使用这些缓冲区并变得令人眼花缭乱 当循环浏览我的缓冲区列表时


如果您从不使用暂存缓冲区,只需将其添加到 .emacs 中即可自动关闭它:

(终止缓冲区“*scratch*”)

我还发现这段代码 http://www.emacswiki.org/emacs/ControlTABbufferCycling#toc3 on the Emacs 维基 http://www.emacswiki.org/这应该做你想做的事:

; necessary support function for buffer burial
(defun crs-delete-these (delete-these from-this-list)
  "Delete DELETE-THESE FROM-THIS-LIST."
  (cond
   ((car delete-these)
    (if (member (car delete-these) from-this-list)
        (crs-delete-these (cdr delete-these) (delete (car delete-these)
                                                 from-this-list))
      (crs-delete-these (cdr delete-these) from-this-list)))
   (t from-this-list)))
; this is the list of buffers I never want to see
(defvar crs-hated-buffers
  '("KILL" "*Compile-Log*"))
; might as well use this for both
(setq iswitchb-buffer-ignore (append '("^ " "*Buffer") crs-hated-buffers))
(defun crs-hated-buffers ()
  "List of buffers I never want to see, converted from names to buffers."
  (delete nil
          (append
           (mapcar 'get-buffer crs-hated-buffers)
           (mapcar (lambda (this-buffer)
                     (if (string-match "^ " (buffer-name this-buffer))
                         this-buffer))
                   (buffer-list)))))
; I'm sick of switching buffers only to find KILL right in front of me
(defun crs-bury-buffer (&optional n)
  (interactive)
  (unless n
    (setq n 1))
  (let ((my-buffer-list (crs-delete-these (crs-hated-buffers)
                                          (buffer-list (selected-frame)))))
    (switch-to-buffer
     (if (< n 0)
         (nth (+ (length my-buffer-list) n)
              my-buffer-list)
       (bury-buffer)
       (nth n my-buffer-list)))))
(global-set-key [(control tab)] 'crs-bury-buffer)
(global-set-key [(control meta tab)] (lambda ()
                                       (interactive)
                                       (crs-bury-buffer -1)))

您需要将临时缓冲区和消息缓冲区添加到变量中crs-hated-buffers, e.g.:

(add-to-list 'crs-hated-buffers "*Messages*")
(add-to-list 'crs-hated-buffers "*scratch*")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Emacs 中的缓冲区循环:避免划伤和消息缓冲区 的相关文章

  • 将字符定义为单词边界

    我已经定义了 字符在乳胶模式下充当单词组成部分 我对结果非常满意 唯一困扰我的是像这样的序列 alpha beta被视为单个单词 当然 这是预期的行为 有没有办法让 emacs 将特定字符解释为单词 starter 这样 它将始终被视为其后
  • 如何在 emacs lua-mode 中配置缩进?

    完整的 emacs 新手在这里 我在 Ubuntu 上使用 emacs 23 1 1emacs 入门套件 https github com technomancy emacs starter kit 我主要在 lua 模式下工作 安装了pa
  • 如何使用 Emacs 通过 HTTP 打开远程文件?

    大多数开源软件都通过某些 HTTP 服务公开其代码 我想从 Emacs 打开并浏览此类代码 但 AFAICS trapmp 只允许ssh and ftp 因此 我的第一个问题是如何打开 HTTP URL 以便在 Emacs 中进行读取 然后
  • 将剪贴板上的图像粘贴到 Emacs Org 模式文件而不保存它

    由于我使用 Emacs Org 模式作为研究日志 有时我想通过屏幕截图来跟踪某些内容 但我绝对不想保存它们 所以我想知道是否有任何方法可以将这些数字插入到我的组织模式文件中 就像使用 word 从剪贴板复制它们一样 您想要的确切功能目前尚未
  • 在 Emacs 中,如何确定哪个包正在加载 Tramp?

    我与 ranp 和 cygwin mount 有一个奇怪的交互 我认为 Emacs 文件名的制表符补全会附加一个额外的 i cygwin https stackoverflow com questions 1705802 emacs tab
  • Emacs如何自动完成C上包含文件的单词?

    如何使 Emacs 完成 C 包含文件中的单词 include
  • SBCL初始化文件

    我想知道应该在哪里保存 sbclrc 文件 我尝试将其保存在我的 sbcl 文件夹中 但它似乎不起作用 我使用的是 Windows XP 和 Emacs 版本 23 我正在尝试设置 asdf install 这就是为什么我要修改初始化文件
  • 在多个 emacs 缓冲区上执行特定命令

    有没有办法在多个缓冲区上执行 emacs 命令 而不必单独选择它们并在每个单独的缓冲区上执行它 我通常打开与特定正则表达式匹配的多个文件 例如 py并希望启用特定模式 例如hs minor mode or glasses mode在每个上
  • 在 Slime 中复制/猛拉整个 Lisp 表单

    有没有办法在 Slime Emacs 中复制 猛拉整个表单 例如 如果我有以下功能 myfunc lst myotherfunc lst 我想复制 复制 myotherfunc lst 当我的光标位于该表单的左括号或右括号时 在 Slime
  • 使用 slime 时如何跳转到 emacs 中的函数定义?

    我已经使用安装了史莱姆https github com thephoeron slime pack https github com thephoeron slime pack并想进一步探索 common lisp 如何访问 emacs 中
  • 如何使用 Emacs Lisp 检查文件是否存在?

    我希望 emacs 将打开时生成的文件标记为只读 我所缺少的难题部分是如何检查文件是否 存在 我目前有以下内容 get file extension defun get ext file name car cdr split string
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • Emacs 键绑定为“\C-'”

    如何将函数设置为 C 当我尝试这样做时 global set key C myfunct 它给了我 字符串中的修饰符无效 What is C 您希望在输入反斜杠 c 引号时发生一些事情吗 或者你的意思是C 控制 引号 如果是后者 我猜是 那
  • 减少通过管道传输至 Emacs

    当查看 Less 的管道输出时 有时我希望能够在 Emacs 中查看它 以便获得语法突出显示并使用 emacs 命令进行搜索 标记 复制等 我看到 Less 有一个v可用于打开当前查看的文件的命令 EDITOR 不幸的是 这在查看管道输入时
  • cygwin bash 在 emacs shell 中无法正确显示

    我正在尝试使用 emacs 来运行 cygwin 我的环境是Windows 7 x64 emacs 24 0 93 1 cygwin 2 769 系统编码为gbk cygwin的编码系统默认为utf 8 emacs的编码系统默认为gbk I
  • 让 Emacs 尊重我的默认 shell + 选项

    我正在尝试让我的 Emacs shell 模仿我的标准终端会话 基本上我希望它尊重相同的路径以及命令提示符 到目前为止我有几个问题 找不到 PATH 下面是我正在使用的修复程序 我尝试过另一个修复 到处都是 ascii 颜色代码 我的 mw
  • 如何通过 El-Get 安装 MELPA 软件包?

    El Get 文档说El Get 支持package el https github com dimitri el get el get elpa and packageelMELPA 文档显示如何使用 MELPApackage el ht
  • 修改verilog模式缩进

    我试图让 verilog 模式使用 2 个空格缩进除 decls 和always 之外的所有内容 这是我添加到 emacs 中的内容 define are not indented setq veril
  • 在 Emacs 中追逐标签后切换到原始缓冲区

    I use M 跳转到类 函数的定义 有时有多个类具有相同的标签 所以我需要使用C u M 跳转到多个文件 因此有多个缓冲区 现在我的问题是 如何快速回到原来的缓冲区 我知道C x b 但是您需要输入缓冲区名称 或者它只是默认为您提供您访问
  • Emacs中跳转到声明的快捷键是什么?

    在 Visual Studio 中 编辑 C C 代码时 按 F12 按钮可以更轻松地跳转到函数或变量的声明 emacs 有快捷键可以做到这一点吗 嗯 事情比这更复杂一些 默认情况下 Emacs 不 了解 C 或 C 代码的函数声明 首先

随机推荐