web-dev-qa-db-ja.com

コピーアンドペースト時にクリップボードの内容を自動的に変更(正規表現パターンの置換)

私はしばしば小さな個別のテキストスニペットをコピーして、どこかに貼り付けています。その後、私は常に明確に定義された方法で貼り付けられた結果を編集する必要があります。これは、例えばseds/PATTERN/REPLACEMENT/コマンド。

このタスクの編集部分を自動化するには、スクリプトでクリップボードバッファーの内容をコピーと貼り付けの間に自動的に処理し、構成済みの正規表現の置換を適用して修正します。

実際の正規表現パターンと置換は、スクリプトの起動時にユーザーが入力する必要があります。小さなダイアログウィンドウを開いたままにし、変更が行われるたびにデスクトップ通知を送信します。

4
Byte Commander

前書き

質問の投稿方法には、単純なスクリプトだけでなく、スクリプトを有効/無効にするためのGUIインターフェイスも必要です。 Ubuntuのトップパネルからアクセスできるアプリケーションインジケーターを使用すると簡単に実現できることがわかりました。この答えは、まさにそれを解決策として示しています。

この質問のために特別に書いたclipboard-autoedit-indicatorにより、正規表現に基づいてクリップボードの内容を自動編集できます(sedまたはpythonのreスタイルの選択)。 Gtkのクリップボードモジュールと最小限の依存関係を使用するため、xclipxselなどの追加ツールをインストールする必要はありません。

Installation

ターミナルで次のコマンドを実行します。

Sudo add-apt-repository ppa:1047481448-2/sergkolo
Sudo apt-get update
Sudo apt-get install clipboard-autoedit-indicator

使用法

Unity Dash Clipboard Autoeditを入力するか、コマンドラインから/usr/bin/clipboard-autoedit-indicatorを呼び出すことにより、インジケーターを起動できます。クリップボードの動的編集が有効/無効になっている場合に表示する2つのインジケータアイコン(色付きおよび灰色表示のクリップボードアイコン)があります。編集が行われると、通知がユーザーに送信されます。

enter image description here

[正規表現パターンの設定]メニュー項目は、zenityフォームダイアログを呼び出します。ユーザーが正規表現ルールを編集すると、記憶され、~/.clipboard-autoedit-config.jsonファイルに保存されます。ユーザーがクリックすると、動的編集が自動的に有効になります OK ボタンを使用しますが、ユーザーは[置換を有効にする]チェックメニュー項目を使用して無効にできます。正規表現タイプのデフォルトは、Pythonのreモジュールです。

enter image description here

ソースコード

ソースコードはMITライセンスの GitHub で利用可能です。さらなる開発および新しいバージョンがあります。機能のリクエストやバグレポートがある場合は、 GitHubで送信してください。

5

これはxclipで簡単です。通知ビットの場合notify-send から libnotify-binパッケージはニーズに合っている必要があります。最初にパッケージをインストールする必要がある場合があります。

Sudo apt-get install xclip libnotify-bin

以下をスクリプトに入力し、キーバインドを使用して実行可能にします。

#!/bin/bash

xclip -o | sed 's/pat/repl/' | xclip -i
notify-send "Clipboard" "Replacement done"
2
Thor