일부 스크립팅의 경우 현재 커서 아래에있는 단어를 가져와야합니다.
수 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
하고 종료합니다.