マルチパターン検索を備えたテキストエディターと一度に置き換えますか?


8

複数のパターンを検索して一度にすべて置換できるGUIテキストエディターを探しています。ソースがテキストファイルの場合、コマンドラインモードでを使用して実行できますsedが、テキストはクリップボードから取得されます(他の方法はありません)。

必要なこと:テキストエディタでクリップボードからテキスト(最大5〜50ワード)を貼り付け、10個の定義済み置換パターンのセットで[置換]ボタンをクリックして、結果をクリップボードにコピーします。このシーケンスは約3000回行われます...


考え直して、これはStack ExchangeサイトのSoftware Recommendationsに属していませんか?
Peter Mortensen 2014年

(Python regexモジュールを使用して)完全なPythonスタイルの正規表現を実行するテキストエディターを作成しました。また、番号グループを置換に使用することもでき、カスタム関数を使用して置換することもできます。まだリリースしていませんが、リリースに向けて準備中です。何も言わない場合は、興味がある場合は投稿し続けるように通知してください。すべてを一度に、または一度に1つ、またはテキスト挿入の前後のすべてを置き換えます。
Brōtsyorfuzthrāx

@PeterMortensenそのセクションはまだベータ版です。一方、現時点での最新の50の質問(Android、ゲーム、MSWord ...)と与えられた回答を見ると、私はそうは思いません。
常に2014年

@ user2962794楽しみにして、頑張ってね!
常に2014年

回答:


13

...スクリプトを使用しないのはなぜですか?チェックxclipsudo 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

次のようなダイアログが表示されます。

YADの例

スクリプトがクリップボード(貼り付け)バッファーを変更して印刷することに注意してください。これをエディタなどに埋め込むにvimは、次のようにします。

  1. に追加.vimrc

    nmap <F4> :r ! /path/to/the/script <CR>
    
  2. たとえばgvimを実行します。

  3. 次に、テキストをコピーし、エディターに移動してF4を押します。適用する変更を選択します。

  4. テキストがエディターに表示されます。そのままでよければ、貼り付けることができます。さもないと

  5. テキストを編集して、もう一度コピーします。(ではgvim、マウスでテキストを選択して、単に貼り付けを選択するか、vimコマンドを学習することができます)。

それは確実に最適化できます(おそらく、変更したテキストを選択して貼り付ける別のキーを簡単に定義して、使用するキープレスをさらに少なくすることができます)。


これは現在ほとんど使用されていますが、テキストをクリップボードにコピーする前に結果を確認する必要があり、手動で変更を行う場合もあります(そしてそれをすばやく実行します)。いい答えですが、テキストエディタである必要があります。
常に2014年

うーん、はい、わかりました。見てみましょう...
Rmano 2014年

いいね。それは私が現在しているよりも少し良い/速いです。ありがとう。私は投票しましたが、Qは残ります。マルチパターンテキスト置換機能が組み込まれたテキストエディターです。geditなどのプラグインとしても使用できます。
常に2014年

5

コマンドラインでこれをすべて行うこともできます。たとえば、現在のクリップボードを取得し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


他の回答についてのコメントで述べたように、テキストエディターの方がいいと思います。
常に2014年

3

Vimエディターを紹介します。(またはグラフィカル実装のGvim)

# apt-get install gvim

このテキストエディターを使用すると、ほとんどすべてを行うことができます。これiは、テキストの入力やテキストdd行のdw削除、単語のd2w削除、2つの単語の削除などのキーボードショートカットに基づいています。

あなたの場合:クリップボードからテキストを貼り付けるには "*p

テキストを:s/foo/bar/g置き換えるには、ここでfooをbarに置き換えます。


1
|たとえば、を使用して一連のコマンドをチェーンすることもできます:%s/foo/bar/g | %s/brown/fox/g | %s/lorum/ipsun/g。または、コマンドを一度に1行ずつファイルに入れ、コマンド:source commandfile.vimを実行するために使用します。または、マクロを作成します...
evilsoup 2014年

Vimは私にとってあまり魅力的ではありませんでした(私は甘やかされてしまいました、はい)。
常に2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.