Для некоторых сценариев мне нужно получить слово, находящееся под курсором.
Может ли 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