一部のスクリプトでは、現在カーソルの下にある単語を取得する必要があります。
xdotool
または同様のツールで取得できますか?
選択した単語を意味しますか?その後はい。(ただし、xdotoolではありません)
—
Jacob Vlijm
一部のスクリプトでは、現在カーソルの下にある単語を取得する必要があります。
xdotool
または同様のツールで取得できますか?
回答:
次のコマンドで、現在選択されているテキストを取得できます。
echo $(xclip -o -sel)
...しかし、xclip
最初にインストールする必要があります:
sudo apt-get install xclip
からman xclip
:
-o, -out
prints the selection to standard out (generally for piping to a file or program)
そして:
-selection
specify which X selection to use, options are "primary" to use XA_PRIMARY (default), "secondary" for XA_SECONDARY or "clipboard" for XA_CLIPBOARD
参照してくださいここでは、いつものように、またはman xclip
。
コメントから、もう何も選択されていなくても(たとえば、ファイルが閉じられたとき)xclip
、最後の選択が出力されることがわかりました。それはあなたの状況の問題のようです。
けれどもxsel
また、この問題を持っている、それは回避することができます。私たちはあなたのスクリプトを作成する場合、スクリプトに現在の選択を読んで、だけでなく、また、ファイルに同じ内容を書き込みます。次に、新しい選択が最後の選択と異なるかどうかを確認できます。そうでない場合、新しい選択は行われなかったと結論付けることができ、コマンドはおそらく古い選択を生成します。その後、スクリプトに合格するように指示できます。
例(xsel
この場合はわずかな利点があるを使用):
#!/bin/bash
# make sure the file to store the last selection exists
f=~/.old_sel
touch $f
# get the previous & current selection
old=$(cat "$f"); new=$(xsel -o)
if [ "$old" != "$new" ]; then
# if selection changed, store the new selection to remember
echo "$new" > "$f"
# do the action, whatever that may be
echo $new
fi
インストールする必要があると言う必要はありませんxsel
:
sudo apt-get install xsel
xclip
返します。
Error: Target STRING not available
、終了します。