複数のパターンを検索して一度にすべて置換できるGUIテキストエディターを探しています。ソースがテキストファイルの場合、コマンドラインモードでを使用して実行できますsed
が、テキストはクリップボードから取得されます(他の方法はありません)。
必要なこと:テキストエディタでクリップボードからテキスト(最大5〜50ワード)を貼り付け、10個の定義済み置換パターンのセットで[置換]ボタンをクリックして、結果をクリップボードにコピーします。このシーケンスは約3000回行われます...
複数のパターンを検索して一度にすべて置換できるGUIテキストエディターを探しています。ソースがテキストファイルの場合、コマンドラインモードでを使用して実行できますsed
が、テキストはクリップボードから取得されます(他の方法はありません)。
必要なこと:テキストエディタでクリップボードからテキスト(最大5〜50ワード)を貼り付け、10個の定義済み置換パターンのセットで[置換]ボタンをクリックして、結果をクリップボードにコピーします。このシーケンスは約3000回行われます...
回答:
...スクリプトを使用しないのはなぜですか?チェックxclip
(sudo apt-get install xclip
)
xclip -o -selection clipboard
は、クリップボードを標準出力に送信し、クリップボードを-i
置き換えることができます。そう
xclip -o -selection clipboard | sed "s/change this/to this/" | xclip -i -selection clipboard
選択に変更が適用され、貼り付けることができます。
グラフィカルなものが必要な場合は、yadを使用してスクリプトを埋め込むことができます。
#! /bin/bash
#
yad --title Choose --button One:1 --button Two:2 --button Three:3
choice=$?
case $choice in
1)
xclip -o -selection clipboard |
sed "s/one/uno/" |
xclip -i -selection clipboard
xclip -o selection clipboard
;;
2)
xclip -o -selection clipboard |
sed "s/two/dos/" |
xclip -i -selection clipboard
xclip -o selection clipboard
;;
3)
echo "executing 3 --- well, you got the idea"
;;
esac
次のようなダイアログが表示されます。
スクリプトがクリップボード(貼り付け)バッファーを変更して印刷することに注意してください。これをエディタなどに埋め込むにvim
は、次のようにします。
に追加.vimrc
:
nmap <F4> :r ! /path/to/the/script <CR>
たとえばgvimを実行します。
次に、テキストをコピーし、エディターに移動してF4を押します。適用する変更を選択します。
テキストがエディターに表示されます。そのままでよければ、貼り付けることができます。さもないと
テキストを編集して、もう一度コピーします。(ではgvim
、マウスでテキストを選択して、単に貼り付けを選択するか、vim
コマンドを学習することができます)。
それは確実に最適化できます(おそらく、変更したテキストを選択して貼り付ける別のキーを簡単に定義して、使用するキープレスをさらに少なくすることができます)。
コマンドラインでこれをすべて行うこともできます。たとえば、現在のクリップボードを取得しxsel
たりxclip
、結果をクリップボードに戻したりできます。これsed
は、複数の置換を行うために使用されていることを示す小さな例です。
echo -n abc | xsel -bi # write to clipboard
xsel -bo | sed 's/abc/def/;s/def/123/' | xsel -bi # process it
echo $(xsel -bo) # output it for testing
戻り値 123
Vimエディターを紹介します。(またはグラフィカル実装のGvim)
# apt-get install gvim
このテキストエディターを使用すると、ほとんどすべてを行うことができます。これi
は、テキストの入力やテキストdd
行のdw
削除、単語のd2w
削除、2つの単語の削除などのキーボードショートカットに基づいています。
あなたの場合:クリップボードからテキストを貼り付けるには "*p
テキストを:s/foo/bar/g
置き換えるには、ここでfooをbarに置き換えます。
|
たとえば、を使用して一連のコマンドをチェーンすることもできます:%s/foo/bar/g | %s/brown/fox/g | %s/lorum/ipsun/g
。または、コマンドを一度に1行ずつファイルに入れ、コマンド:source commandfile.vim
を実行するために使用します。または、マクロを作成します...