何かがクリップボードにコピーされた後(ctrl + cを使用)、スクリプト(bash、pythonまたはその他の言語)で、新しいエントリがクリップボードに追加されたことを自動的に検出し、コンテンツを変更して配置します貼り付けると、変更されたテキストが表示されます。スクリプトは常にバックグラウンドで実行され、クリップボードの変更を監視する必要があります。
次のスクリプトは、必要な変更について説明しています。
出典: https://superuser.com/questions/796292/is-there-an-efficient-way-to-copy-text-from-a-pdf-without-the-line -breaks
#!/bin/bash
# title: copy_without_linebreaks
# author: Glutanimate (github.com/glutanimate)
# license: MIT license
# Parses currently selected text and removes
# newlines that aren't preceded by a full stop
SelectedText="$(xsel)"
ModifiedText="$(echo "$SelectedText" | \
sed 's/\.$/.|/g' | sed 's/^\s*$/|/g' | tr '\n' ' ' | tr '|' '\n')"
# - first sed command: replace end-of-line full stops with '|' delimiter and keep original periods.
# - second sed command: replace empty lines with same delimiter (e.g.
# to separate text headings from text)
# - subsequent tr commands: remove existing newlines; replace delimiter with
# newlines
# This is less than elegant but it works.
echo "$ModifiedText" | xsel -bi
ショートカットキーバインドを使用してスクリプトを実行したくない
クレジットは ケン に送られます。
スクリプトを要件に合わせて変更し、クリップボードのコピーイベントを検出してその内容を変更する機能を追加しました。
ソース: https://github.com/SidMan2001/Scripts/tree/master/PDF-Copy-without-Linebreaks-Linux
このbashスクリプトは、PDFからテキストをコピーするときに改行を削除します。 Linuxのプライマリ選択とクリップボードの両方で動作します。
#!/bin/bash
# title: copy_without_linebreaks
# author: Glutanimate (github.com/glutanimate)
# modifier: Siddharth (github.com/SidMan2001)
# license: MIT license
# Parses currently selected text and removes
# newlines
while ./clipnotify;
do
SelectedText="$(xsel)"
CopiedText="$(xsel -b)"
if [[ $SelectedText != *"file:///"* ]]; then
ModifiedTextPrimary="$(echo "$SelectedText" | tr -s '\n' ' ')"
echo -n "$ModifiedTextPrimary" | xsel -i
fi
if [[ $CopiedText != *"file:///"* ]]; then
ModifiedTextClipboard="$(echo "$CopiedText" | tr -s '\n' ' ' )"
echo -n "$ModifiedTextClipboard" | xsel -bi
fi
done
Sudo apt-get install xsel
clipnotifyをコンパイルするには:Sudo apt install git build-essential libx11-dev libxtst-dev
git clone https://github.com/cdown/clipnotify.git
cd clipnotify
Sudo make
chmod +x "copy_without_linebreaks.sh"
.\copy_without_linebreaks.sh