これは便利!選択範囲内のテキストを1行1アイテムとしてコピーする CopyQ スクリプト
選択範囲内のテキストを改行で区切ってコピー、つまり1行1アイテムとして CopyQ に保存したい時ってありますよね。
それ CopyQ スクリプトで出来ます!
特徴
1行1アイテムとして CopyQ に保存されます。
空白行は無視されます。
出力先のタブが選べます。定型文の登録に便利。
「もっとスマートなやり方があるよ」という方はぜひコメント欄にお願いします。
免責事項
無保証です。このスクリプトを使用して何らかの損害が発生したとしても、作者は責任を負いません。
不具合の報告はコメント欄にお願いします。直せるかどうか分かりませんが。。。
コード
[Command] Command=" copyq: if (!copy()) abort() // \x9078\x629e\x7bc4\x56f2\x306e\x30c6\x30ad\x30b9\x30c8\x3092\x5909\x6570\x306b\x683c\x7d0d var text = str(clipboard()) // \x51fa\x529b\x5148\x306e\x30bf\x30d6\x540d\x3092\x6307\x5b9a var tabNames = tab(); var selected_index = dialog('.title', '\x3069\x306e\x30bf\x30d6\x306b\x51fa\x529b\x3057\x307e\x3059\x304b\xff1f', '.list:Select', tabNames) if (selected_index) tab(tabNames[selected_index]) // \x6587\x5b57\x5217\x3092\x31\x884c\x305a\x3064\x914d\x5217\x306b\x683c\x7d0d\x3059\x308b var textArray = text.split(/\\r\\n|\\r|\\n/) // \x9006\x9806\x306b\x30b9\x30bf\x30c3\x30af for (var i = textArray.length - 1; i >= 0 ; i--){ if (!textArray[i].trim()) continue insert(0 , textArray[i].trim()) }" Icon=\xf24d InMenu=true Name=1\x884c\x31\x30a2\x30a4\x30c6\x30e0\x3068\x3057\x3066\x30b3\x30d4\x30fc
使い方
あらかじめ以下の記事を参考に、スクリプトを登録しておきます。
CopyQ に共有スクリプトを追加する方法 - In my mind
あらかじめ CopyQ を起動しておきます。
あらかじめ出力先のタブを作っておきます。
複数行のテキストを選択して CopyQ のトレイアイコンを右クリック。
メニューから「1行1アイテムとしてコピー」を選択。
「どのタブに出力しますか?」というダイアログが出てきたら出力先のタブを選択。
出力先のタブを開くと1行1アイテムとしてコピーされてます。
参考
Scripting API — CopyQ documentation
JavaScript - 配列を逆順にループする方法 | ITライフ
アイキャッチ画像提供:A MacBook with lines of code on its screen on a busy desk photo – Free Computer Image on Unsplash