从脚本访问突出显示的文本?

从脚本访问突出显示的文本?

是否可以通过 shell 脚本访问突出显示的文本?

我想创建一个键盘快捷键来使用“espeak”来阅读突出显示的文本。

答案1

是的,这相对容易,有很多用于剪贴板操作的工具,我用它们来填写苹果设备注册和电子邮件验证以及xdotool......比填写 1000 次表格容易得多......

因此,设置一个快捷方式是/home/bob/bin/speak.sh

speak.sh:

#!/bin/bash

xclip -o | xclip -selection clipboard -i
xclip -o | espeak

答案2

简短:通常您不能执行此操作(除非将选择内容复制到剪贴板)

long:有一些特殊情况,例如,xterm 有一个功能(通常被禁用)允许应用程序通过转义序列读取所选文本。这是在XTerm 控制序列

        Ps = 5 2  -> Manipulate Selection Data.  These controls may
      be disabled using the allowWindowOps resource.  The parameter
      Pt is parsed as
           Pc; Pd
      The first, Pc, may contain zero or more characters from the
      set c  p  s  0  1  2  3  4  5  6  7 .  It is used to construct
      a list of selection parameters for clipboard, primary, select,
      or cut buffers 0 through 7 respectively, in the order given.
      If the parameter is empty, xterm uses s 0 , to specify the
      configurable primary/clipboard selection and cut buffer 0.
      The second parameter, Pd, gives the selection data.  Normally
      this is a string encoded in base64.  The data becomes the new
      selection, which is then available for pasting by other appli-
      cations.
      If the second parameter is a ? , xterm replies to the host
      with the selection data encoded using the same protocol.
      If the second parameter is neither a base64 string nor ? ,
      then the selection is cleared.

也就是说,如果允许窗口操作资源已启用,应用程序可以执行类似的操作

printf '\033]52;s;?\007'

并将选择数据读取为 base64 字符串。但这是一个特殊情况。

当然,某些应用程序会复制到剪贴板(请参阅常见问题解答),但并非全部。例如rxvt等,使用首选。没有一种解决方案在任何地方都适用。

进一步阅读:

相关内容