在 X11 中获取光标下的单词

9 xorg scripts automation xdotool

对于某些脚本,我需要获取当前光标下的单词。

可以xdotool或类似的工具得到它吗?

Jac*_*ijm 10

如何获取当前选中的文本

您可以使用以下命令获取当前选定的文本:

echo $(xclip -o -sel)
Run Code Online (Sandbox Code Playgroud)

...但你需要先安装xclip

sudo apt-get install xclip
Run Code Online (Sandbox Code Playgroud)

来自man xclip

-o, -out
    prints the selection to standard out (generally for piping to a file or program) 
Run Code Online (Sandbox Code Playgroud)

和:

-selection
    specify which X selection to use, options are "primary" to use XA_PRIMARY (default), "secondary" for XA_SECONDARY or "clipboard" for XA_CLIPBOARD
Run Code Online (Sandbox Code Playgroud)

另请参见此处,或一如既往地参见man xclip


编辑

上次选择的解决方法问题

从评论中,我了解到xclip输出最后一个选择,即使不再选择任何内容(例如,当文件关闭时)。在你的情况下,这似乎是一个问题。

虽然xsel也有这个问题,但可以解决:如果我们让您的脚本不仅将当前选择读入脚本,还将相同的内容写入文件。然后我们可以检查选择是否与上次选择不同。如果没有,我们可以得出结论,没有进行新的选择,并且该命令很可能会产生过时的选择。然后我们可以告诉脚本通过。

一个例子(使用xsel,在这种情况下有轻微的优势):

echo $(xclip -o -sel)
Run Code Online (Sandbox Code Playgroud)

无需说您需要安装xsel

sudo apt-get install xsel
Run Code Online (Sandbox Code Playgroud)