使用 vim 读取 gnu-screen 日志

2024-01-04

最近我发现了一个很棒的终端多路复用工具,称为 gnu-screen。 我对它完全满意。但我遇到了一个我想改进的不便之处。

“C-a H”命令使屏幕将所有内容记录到名为“screenlog.*”的日志文件中。 但以一种奇怪的方式对控制字符进行编码。例如,如果您使用“less”打开日志文件,您可能会看到一些神秘字符,并且日志文件不可读。您必须运行“less -r”或“less --raw-control-chars”,这有助于正确编码这些控制字符。

到目前为止,一切都很好。但是如果您想编辑日志或使用 vim 读取日志,那么您会遇到与控制字符相同的问题。

我用谷歌搜索了这个问题并查找了 SO,但我已经不知所措,因为有太多关于 vim 和 screen 的信息。不幸的是我还没有找到解决方案。

也许您知道这个问题的解决方案或一些解决方法。

UPD谢谢弗雷德里克·哈米迪 https://stackoverflow.com/users/464709/frederic-hamidi我发现这些字符是字体颜色等的终端转义序列。Vim 作为编辑器看到它们并默认编辑它们。 Frédéric 建议的插件告诉 vim 解释它们。


在这里提供答案并最终将其标记为已修复:AnsiEsc 插件 http://www.vim.org/scripts/script.php?script_id=302添加 ANSI 颜色序列的语法突出显示。所以而不是看到^[[30m;下面的文本将以相应的颜色突出显示,就像使用时一样less --raw-control-chars.

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

使用 vim 读取 gnu-screen 日志 的相关文章

  • 使用脚本检查 git 分支是否领先于另一个分支

    I have branch1 and branch2我想要某种 git branch1 isahead branch2 这将显示如果branch1已承诺branch2没有 也可能指定这些提交 我无法检查差异原因branch2 is在之前br
  • 使用 ioctl 在 C++ 中以编程方式添加路由

    我编写了简单的 C 函数 添加了新路线 void addRoute int fd socket PF INET SOCK DGRAM IPPROTO IP struct rtentry route memset route 0 sizeof
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • Docker忽略limits.conf(试图解决“打开文件太多”错误)

    我正在运行一个 Web 服务器 该服务器正在处理数千个并发 Web 套接字连接 为了实现这一点 在 Debian linux 我的基本镜像是 google debian wheezy 在 GCE 上运行 上 打开文件的默认数量设置为 100
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • 使用 libusb 输出不正确

    我用libusb编写了一个程序 我怀疑输出是否正确 因为所有条目都显示相同的供应商和产品 ID 以下是代码 include
  • 如何从 C++ 程序中重新启动 Linux?

    我有一个 Qt 4 GUI 我需要在下拉菜单中提供一个选项 允许用户选择重新启动计算机 我意识到这对于以其他方式重新启动计算机的能力来说似乎是多余的 但选择需要保留在那里 我尝试使用 system 来调用以下内容 suid root she
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • 来自守护程序的错误响应:加入会话密钥环:创建会话密钥:超出磁盘配额

    我尝试在我的服务器上安装 docker 使用本教程 https docs docker com install linux docker ce ubuntu 我想远程运行 docker 镜像并使用 portainer Web 界面来管理一切
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • vim 按语法高亮类型搜索

    我正在将 i18n 添加到现有项目 Web 应用程序 这涉及到用对 i18n 库的调用来替换静态文本的每一位 如果能够搜索该文本 而不是依靠语法突出显示来直观地识别它 将会很方便 在 vim 中 是否可以在文件中搜索特定突出显示类型的出现
  • Vim 和 Mac:如何在不使用 pbcopy 的情况下复制到剪贴板

    我有一个同时支持剪贴板和 xterm clipboard 的 vim 版本 然而 y or y不要复制到系统剪贴板 我知道我可以使用 w pbcopy 甚至为其创建快捷方式 但我真的想要标准方式 我也看到了 fakeclip 但希望找到一个
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • 调用 printf 系统子例程在汇编代码中输出整数错误[重复]

    这个问题在这里已经有答案了 来回 在windows7控制台窗口中运行gcc s2 asm 然后生成一个exe文件 运行a exe 然后崩溃 为什么 s2 asm 代码由以下源代码生成 int m m 1 iprint m s2 asm请参考
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh

随机推荐

  • OpenCV、dlib 地标旋转

    我是 OpenCV 和 dlib 的新手 我不确定我的设计是否正确 我想为 Android 手机编写一个 C 人脸检测器 它应该检测具有不同手机方向和旋转角度的人脸 当手机方向为纵向和横向时 让我们留下来 我正在使用 OpenCV 旋转 编
  • Spring Data JDBC / Spring Data JPA 与 Hibernate

    在哪些典型的现实生活场景中 人们会选择 Spring Data JDBC Spring Data JPA 与 Hibernate 我想了解这些实现最适合的场景 正如 Naros 所说 目前标题中的问题并没有真正起作用 看来我们确实应该考虑
  • 通过 HTTPS 获取 R 脚本

    有没有办法从网络获取 R 脚本 e g source http github com project R file r 原因 我目前有一个项目想要可供使用 但尚未准备好打包 因此 如果能够为人们提供一个可以从网络获取的单个文件 然后该文件将
  • Google Sheets - 将组中的不规则列数据转置为行

    很像中数据转置的问题转置列数据 https stackoverflow com questions 68426024 google sheets transpose column data in groups into rows我一直在尝试
  • 如何在 Java 中获取 RSA 密钥的大小

    给定一个 java security interfaces RSAKey 如何获取它的大小 你可以试试这个 key getModulus bitLength
  • ASP.Net Web API 模型绑定不像 MVC 3 中那样工作

    我的印象是 ASP Net Web API 中的模型绑定应该支持与 MVC 支持的最低功能级别相同的绑定 采用以下控制器 public class WordsController ApiController private string w
  • 如何部署节点应用程序依赖项?如何确保使用 npm 安装某个包的某些版本?

    部署节点应用程序依赖项的最佳方法是什么 如何确保使用 npm 安装某个包的某些版本 是否有像 python 的 pip 中的 requests txt 这样的配方文件 A package json指定模块的依赖关系 https docs n
  • 在 homebrew 中更新 pip 和 setuptools 不起作用

    After brew install python 出现以下内容 Pip and setuptools have been installed To update them pip2 install upgrade pip setuptoo
  • $lookup mongodb 中的嵌套数组

    我正在与新鲜事物作斗争 可爱 lookupMongoDB 中的运算符 我有3个收藏 artists id ObjectId 5b0d2b2c7ac4792df69a9942 name Dream Theater started in Num
  • 如何防止 CFEXECUTE 在 PrintStackTrace 之后挂起

    我正在使用 ColdFusion MX7 对某些 Java 6 代码执行 CFEXECUTE 不幸的是 由于 CF7 不能在 JDK 6 下工作 我必须这样做 我的问题是 当 Java 代码中发生异常时 如果我调用printStackTra
  • Java- CSV /删除csv文件中的列

    我尝试用 Java 删除 csv 文件中的一列 例如 我有这个 csv 文件 ID name1 name2 name3 1 hello hell hel 2 try tr t 3 browser bro br 我想要在下一次操作之后 删除
  • 如果没有 Provides 注释的方法,则无法提供 Android dagger

    我决定学习dagger依赖注入框架 经过一些教程后 我尝试将 dagger 实现到我的项目中 但是我收到了这个错误 com assigment di component AppComponent java 11 error Dagger M
  • URL 重写 PHP $_GET 变量

    嘿 我正在寻找一个 htaccess 重写文件来更改 newProject index php start 2 to newProject page 2 我该怎么办 谢谢 我认为你的问题是倒退的 特别是如果你正在寻找更干净的网址 Rewri
  • 使用 oledb 命令从存储过程检索输出参数 vb.net

    我的存储过程 PROCEDURE dbo addMasterTransaksi kodeSuplier varchar 10 Total money kodeUser varchar 10 isLunas varchar 2 Dp mone
  • rep 的文档是否告诉我们它是一个内部通用函数?

    因为它已开启内部通用函数列表 https stat ethz ch R manual R patched library base html InternalMethods html 我知道rep是一个内部通用函数 这个事实是否仅通过阅读就
  • AngularJS 中具有嵌套状态的嵌套视图

    我正在尝试创建嵌套状态 但出了点问题 我不明白为什么 我的角度应用程序中有这些状态 client list clients client id show client client new new client 现在 我正在尝试做 clie
  • 如何删除C++中类的所有隐式(默认)方法?

    C 编译器在一定条件下为类添加隐式默认构造函数 复制构造函数 析构函数 转换运算符 赋值运算符等以及其他隐式方法 如何以最短的方式禁用 删除所有可能的隐式方法 我不希望我的类不可复制 我只想禁用这些默认方法 以便编译器抛出编译错误 然后我自
  • Express 3.x 和 socket.io 教程 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一个很好的入门教程 使用 Express 3 x 将 socket io 和express 结合
  • 在 iOS 模拟器上显示 GMSMarkers 时出现 GMSThreadException

    我正在开发一个应用程序来在 GMSMapView 上显示大约 200 个 GMSMarkers 我尝试了两种显示标记的方法 方法1有点慢 但没有出现错误 但是方法2在真机上运行顺利 但在iOS模拟器上测试时出现GMSThreadExcept
  • 使用 vim 读取 gnu-screen 日志

    最近我发现了一个很棒的终端多路复用工具 称为 gnu screen 我对它完全满意 但我遇到了一个我想改进的不便之处 C a H 命令使屏幕将所有内容记录到名为 screenlog 的日志文件中 但以一种奇怪的方式对控制字符进行编码 例如