在告诉 Preview 关闭 window 后保留控制权

Retaining control after telling Preview to close a window

我在一个目录结构中有数百张图片,有时我想一张一张地查看它们,以便找到我想要的那一张。

我想调出每一个,如果不是我想要的,就关闭它并查看下一个,只需单击鼠标或在终端中输入一个字母的命令 window。在执行 applescript 告诉预览关闭最前面的 window 后,是否可以打开文件并保留控制权。当我尝试这个时,Preview 保持活动状态,我的脚本暂停,我需要 cmd-tab 回到 iTerm window 让它继续。在执行 'tell' 预览之前,我尝试在 applescript 中设置超时,但这没有用。有没有解决的办法?这是我当前的 ruby 脚本:

#!/usr/bin/env ruby

require 'find'

def osascript(script)
  system 'osascript', *script.split(/\n/).map { |line| ['-e', line] }.flatten
end

file_paths = []

Find.find('.') do |path|
  file_paths << path if path =~ /.*\.png$/
end

file_paths.each do |f|

  system "open '#{f}'"

  decision = gets.chomp

  if decision.eql? "s" then
    exit
  end

  osascript <<-END
  tell application "Preview" 
  close window 1 
  end tell
  END

end

为什么您不只使用标准的 Finder 功能?使用 Finder 打开文件夹,select 第一个文件并键入 space 栏以快速查看。然后只需使用向上和向下箭头键即可显示该文件夹中的 next/previous 个图像。更快和内置。

另一种方法是 select,在 Finder window 中,每个缩略图一个视图。您可以在 window 的右下角调整大小。图片较小,但您可以在屏幕上同时看到更多图片。