TextMate 中的⌃⇧H 到“Tidy”HTML 会导致 NoMethodError

2023-12-23

昨天我第一次尝试在 HTML 文档中使用“Tidy”,结果...

/tmp/temp_textmate.Z2P0KX:30:in `<main>': undefined method `empty?' for nil:NilClass (NoMethodError)

我没有对捆绑包中的代码做任何事情......

#!/usr/bin/env ruby -wKU

require ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb'
require ENV['TM_SUPPORT_PATH'] + '/lib/exit_codes.rb'

result = `"${TM_TIDY:-tidy}" -f /tmp/tm_tidy_errors -iq -utf8 \
          -wrap 0 --tab-size $TM_TAB_SIZE --indent-spaces $TM_TAB_SIZE \
        --indent yes \
          ${TM_XHTML:+-asxhtml --output-xhtml yes} \
          ${TM_SELECTED_TEXT:+--show-body-only yes} \
          --enclose-text yes \
          --doctype strict \
        --wrap-php no \
          --tidy-mark no`
status = $?.exitstatus

at_exit { File.unlink('/tmp/tm_tidy_errors') } # Clean up error log

if status == 2 # Errors

  msg = "Errors: " + File.read('/tmp/tm_tidy_errors')
  TextMate.exit_show_tool_tip msg

elsif status == 1 # Warnings - use output but also display notification with warnings

  log = File.read('/tmp/tm_tidy_errors').to_a.select do |line|
    ! (ENV['TM_SELECTED_TEXT'] and (line.include?('Warning: missing <!DOCTYPE> declaration') or line.include?("Warning: inserting missing 'title' element")))
  end.join rescue nil

  unless log.empty?
    options = {
      :title   => "Tidy Warnings",
      :summary => "Warnings for tidying your document (press escape to close):",
      :log     => log
    }
    TextMate::UI.simple_notification(options)
  end

end

if ENV['TM_SOFT_TABS'] == "YES"
  print result
else
  in_pre = false
  result.each_line do |line|
    unless in_pre
      tab_size = ENV["TM_TAB_SIZE"].to_i
      space, text = /( *)(.*)/m.match(line)[1..2]
      line = "\t" * (space.length / tab_size).floor + " "  * (space.length % tab_size) + text
    end

    print line

    in_pre = true  if line.include?("<pre>")
    in_pre = false if line.include?("</pre>")
  end
end

问题线是unless log.empty?.

我在 OS X 10.6.6 上运行 TextMate 1.5.10 (1631)。我最近安装了 rvm 并将默认 Ruby 升级到 1.9.2,但强制 TextMate 使用 1.8.7 并没有解决问题。


我有同样的问题。我已将 Textmate 设置为使用 RVM 版本的 ruby​​,以便我可以快速测试脚本。

我通过取消选中我创建的环境变量的“TM_RUBY”解决了该问题。

似乎发生的情况是,当使用 OSX 附带的 ruby​​ 版本以外的 ruby​​ 版本时,包装 /usr/bin/tidy 命令的 Textmate 脚本无法正确执行。

我很好奇狮子出来后会发生什么。希望 Textmate 能够重新审视这些内置脚本,并对它们进行一些“除尘”。

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

TextMate 中的⌃⇧H 到“Tidy”HTML 会导致 NoMethodError 的相关文章

  • 如何在 Ruby 中列出局部变量?

    def method a 3 b 4 some method that gives a b end 局部变量 http ruby doc org core Kernel html method i local variables 它输出符号
  • 如何使用 Nokogiri 获取某些标签之后或之前的文本

    我有一个 HTML 文档 如下所示
  • 如何阻止与 RSpec 和 Capybara 的外部连接?

    在我的 Rails 项目中 我想编写非理想条件的测试 例如缺乏互联网连接或超时 例如 我正在使用 gem 来联系 API 并且希望确保在我的应用程序和外部 API 之间存在连接问题时能够正确处理错误 我已经可以通过用录像机制作固定装置并从
  • SSL_connect 返回=1 errno=0 状态=SSLv3 读取服务器证书 B:证书验证仅在代理时失败

    这篇文章几乎重复了许多其他帖子 包括Rails 4 和 Ruby 2 Net HTTP SSL 请求 OpenSSL SSL SSLError SSL connect returned 1 errno 0 state SSLv2 v3 re
  • Ruby 中多维数组的帮助

    我有以下代码将字符串拆分为 3 个字节的组 str hello ix 0 iy 0 bytes tby str each byte do c if iy 3 iy 0 bytes ix tby each index do i bytes i
  • Ruby 中的并行赋值运算符

    我正在查看 Ruby 编程 书中的一个示例 def fib up to max i1 i2 1 1 parallel assignment i1 1 and i2 1 while i1 lt max yield i1 i1 i2 i2 i1
  • 通过推送通知唤醒

    Suppose 有一些对象 例如 一个数组a 和依赖于对象的条件 例如 a empty 当前线程以外的某些线程可以操作该对象 a 因此条件评估值的真实性会随着时间的推移而变化 如何让当前线程在代码中的某个时刻休眠 并在条件满足时通过推送通知
  • 如何向 Time.now 添加两周?

    如何在 Ruby 中向当前 Time now 添加两周 我有一个使用 DataMapper 的小型 Sinatra 项目 在保存之前 我有一个字段填充了当前时间加上两周 但未按需要工作 任何帮助是极大的赞赏 我收到以下错误 NoMethod
  • yard 0.7.3 无法在 Markdown 和 Textile 中构建我的自述文件

    我决定将我的项目中的 README 文件转换为 Markdown 并一直使用yard 验证文档是否正确呈现 所以我安装了 rdiscount 将 README 更改为 README md 并尝试 yard doc README md 这给了
  • 如何使用本地安装的gems执行Ruby程序?

    我已经使用安装了我的依赖项 bundle package 然后将它们传输到离线服务器并运行 gt bundle install local Using mime types 1 19 Using rest client 1 6 7 Usin
  • 多重要求和允许强参数rails 4

    在下面的情况下 我尝试使用强参数 我想要求email address password并允许remember me fields 但像下面这样使用它只允许最后一行在方法示例中 在下面的情况下 它只需要params permit rememb
  • 使用 attr_accessor 动态创建类属性

    在Ruby中 有没有办法动态地将实例变量添加到类中 例如 class MyClass def initialize create attribute name end def create attribute name attr acces
  • “rmagick”gem 安装问题

    我在尝试在 centos 上安装 rmagick gem 时遇到问题 以下是我得到的输出 谁能帮我识别一下我缺少什么包裹 我已经安装了所有提到的另一个堆栈溢出线程 RMagick安装错误 https stackoverflow com qu
  • REXML - 如何提取单个元素

    我正在用 ruby 编写一些验收测试 其中涉及断言响应 XML 中值的存在 我的 XML 是这样的
  • Bundle 说 gem 丢失了 - 但事实并非如此?

    背景 我正在维护contentRuby On Rails 站点 但我确实没有 Rails 的经验 当尝试运行 Rails 服务器时 rails s我明白了 在任何来源中均找不到 activesupport 3 2 0 Run bundle
  • 我无法让 ruby​​ 开发工具包适用于 Windows XP

    所以 我一生都无法让它正常工作 我的最终目标是安装 dbd odbc gem 并使其正常工作 从我读过的多篇文章来看 我需要安装ODBC 绑定 http www ch werner de rubyodbc 对于 ruby 以及 dbd od
  • ruby从1.8.7升级到1.9.2(使用Rails 3.1.1)后本地服务器错误

    我刚刚安装了rvm并使用rvm将ruby从1 8 7升级到1 9 2 我在我的应用程序上运行了捆绑安装 它重新安装了我的 gems 当我在本地运行 Rails 服务器并将浏览器导航到 localhost 3000 时 服务器日志中显示以下错
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • Rails/Ruby 合并两个具有相同键、不同值的哈希值

    我有两个想要合并的哈希值 它们看起来像这样 Hello gt 3 Hi gt 43 Hola gt 43 第二个哈希看起来像 Hello gt 4 Hi gt 2 Bonjour gt 2 我想合并这两个哈希数组 使结果看起来像 Hello
  • 为 RoR 中的每个用户创建新的 URL 路径

    如何在 Ruby on Rails 中实时创建新的 URL 路径 例如 我希望我的用户拥有 name XXX com 或 XXX com name 仅供参考 我在 Heroku 上托管代码 看看 subdomain fu 插件 https

随机推荐

  • WSO2 IS 单点注销部分工作

    我正在使用 WSO2 Identity Server 5 0 0 测试 SAML SSO 并使用两个 PHP 应用程序实例作为服务提供者 使用 onelogin phpsaml 我设法使单点登录正常工作 但现在我面临单点注销的问题 当我从
  • Android视频通话使用android的sip

    我想在android 中开发一个视频通话程序 我想到使用android 2 3 3中引入的内置sip 但如何发起视频通话呢 我看到它不受支持 我相信通用 Android SIP 堆栈支持视频 取自 https developer andro
  • 有没有办法在 flutter 上创建类似可编辑网格的电子表格?

    如果没有可用的 dart 包 如何解决这个问题 您可以复制粘贴运行下面的完整代码您可以使用包https pub dev packages table sticky headers https pub dev packages table s
  • GitHub“无法自动合并”?

    有时 当我尝试将头叉合并到我的基础叉中 或者将我的基础叉合并到头叉中时 我会在 GitHub 上收到以下消息 无法自动合并 别担心 您仍然可以创建拉取请求 如果有冲突的话 我该如何看待 我已经阅读了大约 10 个带有各种命令的不同示例 但我
  • 在 matplotlib 中已知 X 值的曲线上绘制标记

    我根据实验获得的数据绘制了一条关于时间序列的曲线 数据以 10ms 间隔收集 数据是单行数组 我还计算了一个数组 其中包含触发某个设备的时间 我画了这些触发位置的轴线 现在我想在我的曲线与这些轴线相交的地方显示标记 我该怎么做 触发时间 X
  • Android ADB主机设备中ADB设备未授权如何解决?

    当我使用已取得 root 权限的 Android 设备作为 ADB 主机向 Samsung S4 发送 adb 命令 adb devices 时 我收到了设备未经授权的错误消息 然而 当我尝试 adb 到 Samsung Galaxy Ne
  • 使用java将字符串内容传输到远程机器中的文件

    我需要将字符串内容放入远程文件中 理想情况下 我曾经在本地创建一个文件 然后将该文件传输到远程计算机 下面是我用来将文件复制到远程的代码片段 ChannelSftp sftpChannel ChannelSftp channel File
  • Spring Integration:消除设置 bean 的重复代码

    对于我的 SFTP 客户端项目 我使用 spring 集成 我们有不同的客户端 必须连接到不同的 SFTP 服务器 但是 所有逻辑都是相同的 所以我将它们抽象为 AbstractSFTPEndPoint 每个特定于客户端的类都实现 getC
  • 带有建议下拉菜单的 NSTextField

    我没有实现我自己的 而是考虑重用现有的自定义 NSTextField 它支持建议下拉菜单 与浏览器中的下拉菜单相同 当您键入时 您会在下面看到建议列表 你知道有什么好的吗 谢谢你 它们被称为完成 您仍然使用常规文本字段 但添加以下内容 co
  • 删除彩色图像的晕影滤镜

    我是 Python OpenCV 图像处理新手 我想删除图像的边框 轮廓阴影 如下所示 我检查了 如何去除扫描图像中的阴影 https stackoverflow com questions 44752240 how to remove s
  • 我是否在登录系统中使用 cookie 或会话登录?

    我是否在登录系统中使用 cookie 或会话登录 我看过使用会话和 cookie 的示例 所以我很困惑 有人可以解释一下吗 大多数网站使用什么 很想知道 提前致谢 会话 在大多数情况下 使用 cookie 来存储其会话 ID 因此几乎总是您
  • 一旦舞台设置可见,就无法设置样式

    我有一个舞台并将其风格设置为 stage initStyle StageStyle TRANSPARENT 几秒钟后我需要将 initStyle 更改为 Decorate 但当我使用 stage initStyle StageStyle D
  • 在 LINUX 中确定 .a 库/存档是 32 位还是 64 位?

    我们在 Linux 中分发了 64 位和 32 位版本的静态库 在为客户排除故障时 我希望我的诊断 shell 脚本能够通过检查 a 存档文件以确定它是 32 位还是 64 位来快速消除问题 我想到的方法不太优雅 提取 o 成员并询问 文件
  • 在 cxf_home/lib 中找不到 cxf-manifest.jar

    我已经从 tomcat 生成了 wsdl 文件 当我尝试使用 apache cxf 2 5 2 从 wsdl 生成客户端存根时 我无法在 cxf home lib 中找到 cxf manifest jar 我已经为 java home to
  • 在 Google Appengine 上使用 Spring Data JPA

    我正在尝试在 GAE 上使用 Spring 3 2 和 Spring Data 但在正确配置时遇到了一些问题 它很小 但从 Spring Data 文档来看 您似乎不需要比实体管理器工厂 bean 多得多的东西 这是我的配置和启动时遇到的异
  • 通过 Python 使用 .pem 证书进行 SSL 连接

    我正在尝试使用身份验证通过 HTTPS 连接建立成功的通信 我在 Ubuntu 12 04 上使用 Python 2 7 和 Django 1 4 我关注的 API 文档对身份验证有特定要求 包括Authentication您将在下面找到标
  • 使用成员函数启动线程

    我正在尝试构建一个std thread使用不带参数并返回的成员函数void 我无法找出任何有效的语法 编译器无论如何都会抱怨 正确的实施方法是什么spawn 这样它就会返回一个std thread执行的test include
  • Entity Framework Core 添加唯一约束代码优先

    我找不到使用 using 属性向我的字段添加唯一约束的方法 public class User Required public int Id get set Required Index IX FirstAndSecond 2 IsUniq
  • 如何使用 Google 路线服务获取具有不同交通方式的多个路径点的路线?

    因此 我了解如何使用 Google Directions 服务添加航路点并更改交通模式 但是是否可以使用相同的 API 调用来完成这两项操作 我正在尝试获取步行 骑自行车 然后再步行的路线 但我不确定如何使用一个 API 调用来完成此操作
  • TextMate 中的⌃⇧H 到“Tidy”HTML 会导致 NoMethodError

    昨天我第一次尝试在 HTML 文档中使用 Tidy 结果 tmp temp textmate Z2P0KX 30 in