在命令行程序中使用 emacs 或 vim 的语法荧光笔?

2023-12-30

我有一个可以输出 JSON 和 YAML 的命令行程序。默认情况下,它会检测 pygments (pygmentize) 是否可用,如果可用,则将输出传递给它以获得漂亮的彩色输出。但是,默认情况下,大多数运行该程序的计算机上并未安装 pygments。但大多数计算机都会有 emacs 或 vim,但是却有。有没有办法让这些编辑器之一使用 ANSI 转义序列语法突出显示某些文本,然后再次输出?


因为编辑器已经可以做 ansi 的事情,所以很容易制作编辑器的屏幕截图,不是吗?

script -qc "stty rows 10000
emacs -nw -visit YOURFILE.YAML -eval '(redisplay t)' -f kill-emacs
resize"

(仅 GNU FSF Emacs 需要重新显示)

现在清理捕获

perl -p0E 's/\A(?s:.*)\e\[27m\r\n
\e\[A\n((?s).*?)
(?:\e\[K\n)+
\e.*\e\[27m\r$(?s:.*)\Z/$1/mx' < typescript

如果您不希望记录过程在屏幕上可见,您可以使用 perl 的 IO::Pty 之类的东西将其包装在隐藏终端中

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

在命令行程序中使用 emacs 或 vim 的语法荧光笔? 的相关文章

  • 如何在 ubuntu 上的 emacs 中运行 shell 命令,同时避免 bash 作业控制错误?

    我在 ubuntu 中安装了 emacs 使用 sudo apt get install emacs 我遇到的问题是 当我尝试从 emacs 中运行 shell 命令时 例如M ls 输出之前是这样的 bash cannot set ter
  • eshell (elisp shell) 启动时读取什么设置文件? eshell 如何设置它的 PATH?

    使用 emacs eshell echo PATH 显示与 PATH 环境变量不同的路径 我还检查了 eshell 不读取 bashrc 或 profile 我认为这就是路径不同的原因 eshell 启动时读取什么设置文件 eshell 如
  • 在 Emacs ruby​​ 模式下使用制表符缩进而不是空格

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

    在我的 vimrc 中我有 set shiftwidth 4 set tabstop 4 set expandtab 当我点击 Tab 按钮时 设置为使用 4 个空格而不是 Tab 但是当我在 Tab 之后按退格键时 我需要退格所有 4 个
  • vim - 如何删除 netrw?

    我正在测试https github com skwp dotfiles https github com skwp dotfiles 不幸的是它确实安装了很多我不想要的东西 例如 现在 使用空的 vimrc 当我打开 vim 时 我得到 N
  • 如何在 Emacs Lisp 中“URL 解码”字符串?

    我有一个像 foo 20bar 这样的字符串 我想要其中的 foo bar 我知道 Emacs Lisp 中必须有一个内置函数来解码 URL 编码的字符串 查询字符串 但我今天找不到它 无论是在我的文档中还是在我的文档中都找不到它 lisp
  • 如何使用 tmuxinator 在 tmux 中拆分水平窗格内的两个垂直窗格

    目前我的 tmuxinator yml 文件中有这个 windows editor layout main horizontal panes vim server rails s 这给了我两个窗口 一个用于编辑器 另一个用于服务器 在编辑器
  • Emacs 强制组织模式捕获缓冲区在新窗口中打开

    如何强制组织模式的捕获缓冲区在新窗口中打开 我试过 setq special display regexps Capture 但它不起作用 我立即看到一个新窗口 然后 org mode 进行两个垂直分割 我使用 3 个垂直分割 并将捕获缓冲
  • 语法高亮是如何构建的?

    我现在正在使用 Lazarus 构建一个开发人员编辑器 作为每个优秀的开发人员编辑器 它需要有语法突出显示 因此我想知道一些事情 语法高亮通常是如何构建的 使用许多ifs 更改 a 上的字体TextField TSynEdit这样做很好吗
  • 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 时 它会不断尝试提供建议
  • 在键盘快捷键上插入预定义文本

    我经常插入binding pry当我调试我的 ruby 文件时 当我使用 Vim 时 我希望将其自动化 以避免每次都重新输入 我怎样才能做到呢 我想要映射的确切顺序是 插入新行 Insert binding pry到新创建的行 返回正常模式
  • Emacs:在缓冲区求值期间将参数传递给下级 Python shell

    最近我开始使用 Emacs 作为 Python IDE 它不太直观 我现在遇到的问题是当使用 C c C c 评估缓冲区时如何将命令行参数传递给下级 python shell 感谢帮助 这似乎并不容易实现 管理的劣质流程python el模
  • 将字符定义为单词边界

    我已经定义了 字符在乳胶模式下充当单词组成部分 我对结果非常满意 唯一困扰我的是像这样的序列 alpha beta被视为单个单词 当然 这是预期的行为 有没有办法让 emacs 将特定字符解释为单词 starter 这样 它将始终被视为其后
  • vim 退出时恢复 shell

    我刚刚在我的新计算机上安装了 Arch 但我不知道需要向 vimrc 添加什么命令 以便它在退出时恢复 shell 内容 在调用 vim 之前 也就是说 我希望我的 shell 看起来像这样 whoami root who root tty
  • “swank-clojure”到底是做什么的,我们有“swank-SOMETHING_ELSE”吗?

    我的肤浅理解是 swank clojure 使 M x slime connect 成为可能 我的意思是 它提供了与 clojure 服务器的连接 例如 lein swank 我的理解正确吗 如果不是 那swank的目的是什么 那么 是否有
  • 如何让 clangd 转向 c++20

    当没有其他信息时 如何让 clangd 回退到 c 20 例如 在第一次构建之前 cmake 可以生成一个 这是在带有最新 LLVM 的 Arch Linux 上 这是通过 Emacs LSP 运行的 但这应该没有什么区别 你可以加 Com
  • 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
  • :set 选项的显示值

    如果你不给 colorscheme一个参数 然后它显示 vim 当前使用的颜色方案的名称 vim 中是否有类似的方法来显示是否设置了选项或如果选项的值不是布尔值则设置为什么 例如 如果我想知道是否autoindent已设置或者我想知道的值t
  • Emacs 在多个文件中查找并替换正则表达式 (find-name-dired + Q),不保存我的缓冲区?

    我不明白这是怎么回事 我已经在整个目录中进行了搜索和替换 使用 M x 查找名称 dired RET 选择我的项目的根目录 输入 rb 作为要匹配的文件名 按 t 选择找到的所有文件 按 Q shift Q 开始搜索 替换 输入 交易 作为

随机推荐

  • 多态 has_and_belongs_to_many

    如何定义 has and belongs to many 多态关联 情况 想象一下我们有用户 曲目 列表等 并且所有这些模型都可以被标记并使用此标签进行过滤 我想做的是 Use has and belongs to many这使得标签可以拥
  • 使用 sql 选择的值作为另一个选择的行名称

    在 MSSQL 服务器上 给定表 TABLE values int id timestamp date int value TABLE value type int value id foreign key on values id tex
  • 通过 setName() 比较组件。

    我正在编写一个图像拼图游戏 代码的一部分是将用户选择的片段与正确图像的片段进行比较 每个图像片段都已作为 ImageIcon 添加到 JButton 需要一个标识符来区分每个图像片段并进行比较 我正在为每个创建为标识符的 JButton 设
  • Java - 字段名称的别名

    假设我有一个对象 Object A String field1 abc String field2 xyz 上面的 json 是 ObjectA field1 abc field2 xyz 我试图在发送 json 之前为字段名称创建一个新的
  • 构建一个简单的键盘记录器 Android 应用程序:虚拟键盘的辅助功能研究

    我一直在尝试寻找一些资源 以便为 Android 平台 APILevel 17 上的辅助功能研究项目构建键盘记录器 Android 应用程序 应用程序的界面将是一个简单的 编辑文本 用户使用以下命令键入的字段虚拟屏幕键盘 从输入设置中选择所
  • Dalvik 到 Java SE 通信

    我正在计划开发一个 Android 应用程序 它需要后端服务器来与该应用程序的其他用户同步数据 我计划用在 UNIX 服务器上运行的标准 java 编写这个服务器 我曾经直接在两个 Android 设备之间执行此操作 在这种情况下 我只是序
  • 如何对具有非数值的数据框进行分组和透视

    我正在使用 Python 并且有一个包含 6 列的数据集 R Rc J T Ca 和 Cb 我需要先 聚合 列 R 然后 聚合 以便对于每个 R 每一行都是唯一的 J Rc 是 R 的特征 Ca 和 Cb 是 T 的特征 查看下表会更有意义
  • 什么是 UI 状态?

    什么是 UI 状态 你能给我举一个类似的例子吗 例如 它是否指的是跟踪打开的选项卡之类的事情 我认为这个想法是应用有状态 并且 UI 反映了该状态 所以当你的应用程序启动时 它会像下面这样 1 初始状态 应用程序启动 2 加载初始数据 加载
  • 自动前缀过滤器在 Flask_Assets 中不起作用

    我尝试按照以下说明让 autoprefixer 过滤器与 Flask assets 一起使用Flask Assets 文档 https webassets readthedocs io en latest builtin filters h
  • 如何使用 core php 在 WordPress 中注册后自动登录

    几天来我一直在尝试让刚刚注册到我的 WordPress 网站的用户自动登录 然后将他们重定向到我选择的 URL 默认情况下 WordPress 会向您发送用户名和密码 然后您必须手动登录 这是一种彻底的痛苦 我怎样才能克服这个问题 我有自己
  • Java随机数

    初学者问题在这里 我尝试使用此代码创建一个随机数 int rand int Math random 10 但是 当打印到屏幕时 我一直收到 0 作为答案 只有在像这样加上括号之后 int rand int Math random 10 数字
  • 堆空间中的缓冲响应会导致大文件出现问题

    我有一个网络服务器项目 在尝试下载大文件时遇到异常 该文件通过流读取并写入 ServletOutputStream 示例代码 private void readFromInput BufferedInputStream fis Servle
  • AMQP 1.0 实现在哪里?等待还有意义吗?

    我正在进行研究 以确定我们未来的产品应采用哪种消息传递解决方案 但我无法真正弄清楚这一点 有很多 AMQP 0 9 1 实现 RabbitMQ Apache Qpid OpenAMQ 等 但没有 AMQP 1 0 实现 尽管 1 0 已于
  • 如何在 OpenAPI (Swagger) 中指定默认的 XML 元素文本?

    我正在为以下 XML 有效负载构建 OpenAPI Swagger 2 0 定义 以在 Swagger UI 中使用
  • WinSpool OpenPrinter 访问被拒绝

    这是这个问题第 335 次被问到 但我没有找到答案 我正在尝试通过 WinSpool api 从 ASP net C 应用程序将原始数据直接发送到打印机 我的代码只是一个副本here http support microsoft com k
  • 使用多索引将数据帧的一部分与另一部分进行比较

    我有一个具有 3 级多重索引的数据框 gt gt gt np random seed 0 gt gt gt df pd DataFrame np random randint 10 size 18 2 index pd MultiIndex
  • 解码字符串有多少种方法?

    我正在解决需要解码字符串的问题 包含 A Z 字母的消息正在被编码为数字 使用以下映射 A gt 1 B gt 2 Z gt 26 给定一个仅包含数字的非空字符串 确定总数 解码它的方法的数量 示例1 输入 12 输出 2 解释 可以解码为
  • 设计authenticate_user的代码是什么!为 :user 生成后

    我意识到authenticate user is 没有明确定义 https stackoverflow com questions 9272272 where is devise implementation of authenticate
  • 非托管 C++ - 需要强名称才能由具有强名称的 C++/CLI dll 引用吗?

    我有一个非托管 C dll 它将由托管 C CLI 包装器 dll 使用 最终将由 C 项目使用 C 项目是强名称的 包装器 dll 也是如此 我尝试使用 KEYFILE 对非托管 dll 执行相同的操作 但似乎不起作用 包装器正在抱怨 i
  • 在命令行程序中使用 emacs 或 vim 的语法荧光笔?

    我有一个可以输出 JSON 和 YAML 的命令行程序 默认情况下 它会检测 pygments pygmentize 是否可用 如果可用 则将输出传递给它以获得漂亮的彩色输出 但是 默认情况下 大多数运行该程序的计算机上并未安装 pygme