如何使用 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 - 如何在子目录中进行查找文件搜索

    我想为 Emacs 实现类似 Resharper 的 转到文件 功能 当按下上述快捷键时 Resharper 会弹出一个接受通配符字符串的文本框 并显示一个自动完成菜单 其中列出了项目中与该通配符匹配的所有文件 source jetbrai
  • 如何在 Emacs 中强制绑定?

    我正在尝试绑定
  • 如何更轻松地在 Emacs 中的缓冲区之间切换?

    我最近开始使用 emacs 并且大部分时间我都很享受使用它 我唯一不喜欢的是在缓冲区之间切换 我经常打开一些缓冲区 并且我已经厌倦了使用C x b and C x C b 是否有任何软件包可以使缓冲区之间的切换变得更容易 我调查过emacs
  • Home / end 控制字符在 Mac OS X 终端下的 emacs 中不起作用

    我在 Mac OS X 上的终端窗口中运行 emacs 在同一终端的 bash shell 中 我可以使用Shift
  • Emacs-helm 中的选项卡(任何内容)不会自动完成当前的最佳匹配

    While trying to autocomplete a file e g to open a file with C x C f Emacs helm shows a list of possible candidates If I
  • IPython 自动完成 emacs24 不起作用

    我将 emacs24 0 92 与 IPython 12 一起使用 我从 IPython 存储库中获取了 ipython el 文件并尝试了这个补丁 https github com ipython ipython pull 204但是自动
  • 在 emacs 主要模式下正确突出显示

    我正在为一种语言开发 emacs 主要模式 又名mydsl 然而 由于某种原因 使用 xahlee 网站上的技术似乎不起作用 可能是较旧的 emacs 方言 我正在解决的关键问题是 1 突出显示评论不起作用以及 2 使用regexp opt
  • 如何从 Emacs 中运行 Cygwin Bash Shell?

    我在 Windows 上运行 GNU Emacs 因此输入 M x shell 启动 Windows 命令行 DOS shell 但是 我希望能够从 Emacs 中运行 Cygwin Bash Shell 或任何其他非 Windows sh
  • 如何更改 emacs 上的光标颜色

    我对 Emacs 的颜色做了一些更改 现在唯一的问题是光标在黑色背景上为黑色 我必须更改它 我该怎么办 如果您运行的是最新版本的 emacs 您可以使用 Set cursor color to white set cursor color
  • 在 Emacs ruby​​ 模式下使用制表符缩进而不是空格

    我一直在尝试配置 Emacs 以便在缩进 Ruby 代码时插入一个 制表符 而不是一系列 空格 到目前为止 我已经尝试设置 varruby indent tabs mode to t这样 根据文档 它将 如果非零 则在 ruby 模式下插入
  • 如何在 elisp 中将列表作为宏的参数?

    我想实现这样的目标 setq my global keybindings C x C d dired C x C b ibuffer C x b ivy switch buffer apply bind keys my global key
  • emacs 的最佳 java 工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Emacs Paredit 中交换括号和方括号

    如何在 paredit 模式下定义交换括号和方括号的命令 所以任务就是把它变成这样 例如 blah a b c 进入这个 blah a b c 使用 paredit 模式 移至表达式的开头 a 进而 C M SPC
  • Emacs:当光标位于右括号时匹配括号

    之前有人问过 Emacs 当光标位于其上时突出显示匹配的括号 而不是其后 https stackoverflow com questions 16399530 emacs highlight matching paren when curs
  • Windows、Emacs、Git Bash 和 shell 命令

    Windows 7 Emacs 24 3 1 git 1 8 1 msysgit 1 我的等效 emacs 文件中有以下内容 if equal system type windows nt progn setq explicit shell
  • 配置jedi不自动完成?

    我在 emacs 中安装了 jedi mode 来进行 python 编辑 因为我发现C and C 对于跳转到定义并返回非常有用 然而 自动完成并不是我想要的 当我尝试在安装了 jedi 的情况下使用 emacs 时 它会不断尝试提供建议
  • 将剪贴板上的图像粘贴到 Emacs Org 模式文件而不保存它

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

    我试过了linum and nlinum 两者对于超过 100k 行的文件的性能都很糟糕 for x in 1 100000 do echo x done gt 100k txt emacs q 100k txt M x load libr
  • 在 Emacs 中,如何根据缓冲区名称自动启用次要模式?

    我有一个 Emacs 扩展 它创建一个名为 erl output 该缓冲区仅由以下内容创建fundamental mode默认情况下 有什么办法可以自动启用compilation minor mode在那个缓冲区上 要自动更改主要模式 您可
  • Emacs C++,打开相应的头文件

    我是 emacs 新手 我想知道 是否有在头文件 源文件和相应的源文件 头文件之间切换的快捷方式 是否有像通用 emacs 参考卡那样的参考卡 Thanks There s ff find other file 您可以使用以下方法将其绑定到

随机推荐

  • 错误:在 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