如何将 TextMate 中的一行发送到在终端窗口中运行的 irb 进程?

2024-02-12

我经常在打开 TextMate 窗口并在其旁边的终端窗口中运行 irb 进程的情况下进行编码。我希望能够在 TextMate 中按下一个按键序列,该序列执行以下操作:

  1. 复制当前选择,如果没有,则复制当前行。
  2. 将其粘贴到运行 irb 的最上面的终端窗口中。
  3. 按 Enter 键,以便在 irb 窗口中执行该行代码。

我在 R 中编码时使用了这种交互式开发风格,发现它非常方便。我很确定 emacs 和 SLIME 也可以让你像这样工作。 Ruby 和 TextMate 可以吗?


您必须创建捆绑命令和键盘快捷键才能执行此操作。

  1. 在 TextMate 中,转到“捆绑包”->“捆绑包编辑器”
  2. 在我们自己的 Bundle 中创建一个新命令。称之为“在终端中执行”
  3. 将“保存”设置为“无”,将“输入”设置为“选定的文本”,将“或”设置为“行”。
  4. 设置“要丢弃的输出”
  5. 在“激活”中选择您自己的快捷方式。我选择了Apple Shift U
  6. 将下面的命令粘贴到“命令”框中(格式给我带来了麻烦)
  7. 关闭 Bundle Editor,然后选择 Bundles -> Bundle Editor -> Reload Bundles
  8. 创建一个包含行“puts“Hello World””的新文档
  9. 在终端中打开 IRB
  10. 选择您刚刚在 Textmate 中编写的行,然后按键盘快捷键。
  11. 观看“Hello World”出现在 IRB 中。

命令:

#!/usr/bin/ruby

input = STDIN.gets

`osascript << EOF

tell application "Terminal"
  activate
end tell

delay 1

tell application "System Events"
  keystroke "#{input.gsub('"', '\"')}"
  keystroke return
end tell

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

如何将 TextMate 中的一行发送到在终端窗口中运行的 irb 进程? 的相关文章

随机推荐