如何使用 emacs/elisp 获取当前缓冲区信息的开始/结束?

2024-04-13

我有以下代码运行以范围输入的Figlet。 如何修改此代码以检查 b 或 e 是否未指定,使 b 位于当前缓冲区的开头,e 位于当前缓冲区的结尾?

(defun figlet-region (&optional b e) 
  (interactive "r")
  (shell-command-on-region b e "/opt/local/bin/figlet" (current-buffer) t)
  (comment-region (mark) (point)))
(global-set-key (kbd "C-c C-x") 'figlet-region)

ADDED

肖恩帮助我找到了这个问题的答案

(defun figlet-region (&optional b e) 
  (interactive)
  (let ((b (if mark-active (min (point) (mark)) (point-min)))
        (e (if mark-active (max (point) (mark)) (point-max))))
   (shell-command-on-region b e "/opt/local/bin/figlet" (current-buffer) t)
  (comment-region (mark) (point))))
(global-set-key (kbd "C-c C-x") 'figlet-region)

像这样:

(defun figlet-region (&optional b e) 
  (interactive "r")
  (shell-command-on-region
   (or b (point-min))
   (or e (point-max))
   "/opt/local/bin/figlet" (current-buffer) t)
  (comment-region (mark) (point)))

但请注意b and e当此命令交互运行时将始终被设置。

你也可以这样做:

(require 'cl)

(defun* figlet-region (&optional (b (point-min)) (e (point-max)))
  # your original function body here
    )

EDIT:

所以我猜您的意思是即使该区域未处于活动状态,您也希望能够以交互方式运行该命令?那么也许这对你有用:

(defun figlet-region ()
  (interactive)
  (let ((b (if mark-active (min (point) (mark)) (point-min)))
        (e (if mark-active (max (point) (mark)) (point-max))))
    # ... rest of your original function body ...
      ))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 emacs/elisp 获取当前缓冲区信息的开始/结束? 的相关文章

  • emacs 中 ansi term 中的奇怪字符

    我编写了一个 C 程序 当我在 ansi term 中使用 g 编译它时 显示了一些奇怪的字符 如果需要 错误是我没有声明变量 n 我该如何纠正这个问题 啊 测试了这个 setq locale coding system utf 8 set
  • SBCL初始化文件

    我想知道应该在哪里保存 sbclrc 文件 我尝试将其保存在我的 sbcl 文件夹中 但它似乎不起作用 我使用的是 Windows XP 和 Emacs 版本 23 我正在尝试设置 asdf install 这就是为什么我要修改初始化文件
  • emacs 去掉 shell 中的所有 ansi 颜色代码

    我在 OS X 上使用 emacs 24 但遇到了一个奇怪的问题 我看不到任何颜色代码 Emacs 似乎只是忽略它们 我的动机是查看 C 项目的 cmake llvm 和 googletest 框架的彩色输出 我想在编译模式下查看颜色 但是
  • Mac OS High Sierra 下无法打开 pty

    我的问题的本质是 用户程序如何在 Mac OS High Sierra 上打开 pty 例如 dev ptyp0 设备名称的标准 open 似乎不起作用 尽管它的保护是 crw rw rw 上下文是在 Mac OS 下运行 Emacs 在
  • Emacs 启动时出现 24 错误

    我已经使用 emacs snapshot 一段时间了 但最近它崩溃了很多 所以我切换到 Emacs 24 但是一旦我安装并启动它 它就开始显示错误并且不会在我的 init el 中加载任何内容 当我在调试模式下运行它时 我得到了这个 Deb
  • 在 emacs org-mode 中仅延迟加载前 N 行

    有没有办法告诉 org mode 仅加载长文本文件的前 N 行 我想保持整个文件打开以便能够搜索它 但在文件的前 N 行上显示组织模式 这是我编辑新内容的地方 如果您在组织模式下有结构化大纲 则可以使用以下命令设置全局文件可见性 START
  • Emacs 打字骨架对插入也许

    在 Eclipse 中 编辑 Java 代码时 如果我输入一个左括号 我会得到一对括号 如果我然后 输入 第二个括号 它不会插入额外的括号 我如何在 emacs 中得到它 Eclipse 编辑器足够聪明 当我输入闭括号时 它知道我刚刚完成了
  • Emacs 是否具有单词和行补全功能(如 Vim 的插入模式补全功能)?

    Vim 完成单词和行CTRL X P and CTRL L 有一个名为 Company mode 的 Emacs 插件 但该插件会干扰 Emacs 中的许多内容并导致冲突 与全局 linum 和 yasnippets 我知道我可以在 Ema
  • 如何使用 Emacs Lisp 检查文件是否存在?

    我希望 emacs 将打开时生成的文件标记为只读 我所缺少的难题部分是如何检查文件是否 存在 我目前有以下内容 get file extension defun get ext file name car cdr split string
  • 如何在 (emacs) shell 命令的输出中添加颜色?

    执行命令时shell命令 关联缓冲区中显示的输出未着色 当从 emacs 中调用测试框架 输出黄色 绿色 红色 时 这尤其令人烦恼 我如何配置或扩展 emacs 以便shell命令允许在 shell 中进行彩色输出并在表示该输出时保留颜色
  • 如何为 C# 模式配置 Emacs speedbar?

    我正在使用 EmacsC Mode http mfgames com linux csharp mode当我打开速度栏时 默认情况下不会显示任何文件 我可以在速度栏模式下选择 显示所有文件 但每个 cs 文件都会在名称旁边显示 如何正确配置
  • 如何在组织模式下关闭公司模式?

    我正在使用 spacemacs 并尝试在组织模式下关闭公司模式 同时将其保留在其他主要模式中 我尝试过以下方法 global company mode not org mode 但它不起作用 禁用自org mode hook 此方法几乎适用
  • Emacs 键绑定为“\C-'”

    如何将函数设置为 C 当我尝试这样做时 global set key C myfunct 它给了我 字符串中的修饰符无效 What is C 您希望在输入反斜杠 c 引号时发生一些事情吗 或者你的意思是C 控制 引号 如果是后者 我猜是 那
  • 我应该学习使用 Emacs 吗? [复制]

    这个问题在这里已经有答案了 我使用 IntelliJ IDEA 作为代码编辑器 所以这并不是要取代它 我用vi or vim用于在我们的服务器和标准上进行简单的文本编辑unix用于查找文件 获取目录列表等的命令 同事们对 emacs 赞不绝
  • 如何清空或清除 emacs 迷你缓冲区?

    有时 迷你缓冲区的内容会显示命令的输出 emacs 24 当输出只有一行时 这并不会造成太大的不便 当命令有多行长并且迷你缓冲区使用许多可用于其他用途的显示行时 这会更烦人 有没有办法清除迷你缓冲区的内容 注意 当我M echo usage
  • Org LaTeX 预览在视网膜显示屏上模糊

    我所有的数学 科学笔记都使用 Emacs 24 4 org latex preview太棒了 但最近 我升级到了配备视网膜显示屏的 MacBook Pro 现在我发现组织模式下的所有方程都 模糊了 有什么设置可以更改为高分辨率吗 这是一个屏
  • 让 Emacs 尊重我的默认 shell + 选项

    我正在尝试让我的 Emacs shell 模仿我的标准终端会话 基本上我希望它尊重相同的路径以及命令提示符 到目前为止我有几个问题 找不到 PATH 下面是我正在使用的修复程序 我尝试过另一个修复 到处都是 ascii 颜色代码 我的 mw
  • 用于将 PCRE 正则表达式转换为 emacs 正则表达式的 Elisp 机制

    我承认对喜好有很大的偏见PCRE http www pcre org regexps 比 emacs 好得多 如果没有其他原因 当我输入 时 我几乎总是想要一个分组运算符 当然 w 和类似的比其他等价物方便得多 但当然 期望改变 emacs
  • Emacs java 模式:malabar、jdee 还是 eclim?

    我想使用 emacs 进行 java 编码 但我对使用什么模式进行 java 编码感到困惑 有 jdee 看起来像 ide malabar 据说他比 jdee 更精通 java 1 5 结构 和 emacs eclim 它是 emacs 的
  • 我把 IPython 配置文件放在哪里?

    我已经尝试将 edit 编辑器设置为 Emacs 一段时间了 但进展非常缓慢 IPython 0 13 文档不清楚如何实际配置它 它告诉我通过添加将 EDITOR 设置为所需的编辑器 在我的例子中为 emacsclient c get co

随机推荐

  • 错误:在 firefox 中使用 getBBox() 时出现 NS_ERROR_FAILURE

    我想使用方法获取BBox 用于获取 SVG 中创建的元素的宽度和高度 在这里我提供了我的代码 它在 chrome 中给出结果 但在 firefox 中不给出结果 请帮我解决一下 try console log document getEle
  • 仅 mysqldump 模式,模式更新不丢失

    我正在考虑在提交更改之前使用 git pre commit hook 导出 MySQL 数据库模式 以便其他开发人员可以使用 git 存储库中的 SQL 脚本更新自己的数据库 默认情况下 mysqldump 我正在使用 no data 会在
  • 无法使用 @WebMvcTest 自动装配 MockMvc [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在尝试在 Spring Boot 应用程序中测试我的 REST 控制器 这是我的测试课 import com binar ke
  • WCF服务操作名称

    有没有办法配置 App Insights 在监视 WCF 服务时收集操作名称 所有请求都通过 URL 只是以 svc 结尾的 POST 集中在一起 因此没有简单的方法来确定在服务上调用了哪个特定操作 是否需要一个自定义遥测初始化程序来以某种
  • 如何告诉 PyCharm 将生成的函数放在当前函数下方而不是上方?

    我有一个函数调用foo 在我里面main函数及对应函数foo尚不存在 我希望 PyCharm 使用如下所示的轻浆选项为我生成该函数 原则上它是有效的 但是 我希望生成新函数below main而不是在它之前 之上 gt 我如何告诉 PyCh
  • mPDF 不会在 pdf 文件上打印希伯来语

    我使用时遇到这个问题mPDF用希伯来语 这些是我正在使用的 mPDF 和 PHP 版本 PHP 5 6 25 mPDF 最新 这是我使用的 PHP 代码片段
  • 使用 PowerShell 的 Start-Process cmdlet 传递变量参数

    各位晚上好 我使用的命令行将参数作为变量传递给以下脚本 以便在我从此脚本中调用的另一个 ps1 中运行 每当我尝试从命令行传递参数时 我都会收到以下错误 Start Process 找不到接受的位置参数 争论 有人可以帮忙吗 感谢您抽出宝贵
  • 获取 JRuby jar 路径

    如同this https stackoverflow com questions 8743854 how to get the path of the jruby warbler jar file问题 我想知道如何获取当前jar文件的路径
  • 依赖规则顺序

    为了计算两个相同长度列表之间的汉明距离 我使用foldl hamm A B 0 R 有了这个定义hamm 4 hamm A A V V hamm A B V0 V1 A B V1 is V0 1 第一条规则的删减可以防止不必要的回溯 然而
  • 当 AJAX 向具有无效证书的服务器请求时如何抑制 SSL 错误

    我有这个代码 function newXMLHttpRequest var xmlHttp try xmlHttp new ActiveXObject Msxml2 XMLHTTP catch e try xmlHttp new Activ
  • 为什么我不能从 System.Object 中提取 ushort,然后将其转换为 uint? (C#)

    我正在操作列表中的项目System Management ManagementObjectCollection 这些项目中的每一个都是System Management ManagementObject其中包含按字符串索引的属性 看 for
  • 处理硬退回/投诉还是只是坚持黑名单?

    在这里向 NOOB 发送电子邮件 计划使用 Amazon SES 发送交易电子邮件 尝试了解如何处理退回邮件或被标记为垃圾邮件的电子邮件 SES 会自动将退回邮件 投诉收件人添加到黑名单中 我读到的有关禁止名单的内容 https sesbl
  • “User.count”没有改变 1 - Rails

    What User count didn t change by 1手段以及如何解决它 以下是控制台的命令行 这是我经历过的失败bundle exec rake test我正在寻找一种方法来修复它们 bundle exec rake tes
  • 如何等待WebViewBrush.Redraw()完成(UWP打印)?

    我有一个基本的 UWP 应用程序 带有嵌入式 WebView 可呈现相当大的 HTML 文档 最多 500 个字母大小的打印页面 我想添加对打印该 HTML 文档的支持 这是我的方法 为了支持分页 我使用 div style height
  • 类似heroku的git设置?

    说到 git 我是个菜鸟 我怎样才能得到它 这样我就可以做类似的事情git push production master并拥有我自己的远程存储库镜像 目前 每当我跑步时git push production master I get 错误
  • 闪亮反应性解释(使用 ObserveEvent)

    我希望使用下面的简化代码作为示例 清楚地了解 Shiny 的反应行为 当 y 在应用程序中更新时 图表也会更新 当 x 在应用程序中更新时 图表不会更新 我已阅读 Shiny 的教程 我的理解是 鉴于我已将 test 和plot 函数包装在
  • JQUERY - 单击后将 CSS 类添加到 BUTTON 元素 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我想在单击
  • 将对象转换为没有 TInterfacedObject 作为基类的接口类型

    我需要一个没有引用计数的实现接口的类 我做了以下事情 IMyInterface interface IInterface B84904DF 9E8A 46E0 98E4 498BF03C2819 procedure InterfaceMet
  • linq 查询和空值

    我想用 linq 查询一些 xml 文件 有一些必需的元素和一些可选的元素 仅需要名称 其他一切都是可选的 如果有一些 NULL 例如 cageCode NULL 它不会选择任何内容 我需要添加到字符串列表 我尝试了如下所示 但它不起作用
  • 如何使用 emacs/elisp 获取当前缓冲区信息的开始/结束?

    我有以下代码运行以范围输入的Figlet 如何修改此代码以检查 b 或 e 是否未指定 使 b 位于当前缓冲区的开头 e 位于当前缓冲区的结尾 defun figlet region optional b e interactive r s