Notepad++: 選択したテキストを置き換えるマクロを作成する

Notepad++: 選択したテキストを置き換えるマクロを作成する

Notepad++マクロが必要です。検索と置換ただし、マクロ実行時に強調表示されているテキストの部分に適用されます。

マクロを記録しようとしましたが、マクロを記録した瞬間にハイライトしたテキストの部分が記録されます。これは私が望んでいることではありません。検索と置換マクロを実行するたびに異なるテキストが表示されます。

マクロを記録すると、AppData\Notepad++\shortcuts.xml次のものが表示されます。

<Macro name="SaR_macro" Ctrl="yes" Alt="no" Shift="yes" Key="89">
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="some text" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

上記の の場所に「現在の選択」のようなものを挿入する方法があるかもしれませんsome text。そのようにすればよいのでしょうか?

編集:

もっと正確に言えば、私が達成しようとしていること。次のような txt ファイルがあるとします。

text text text text text - qwerty
text text text text - asdf
text text text text text text - zxc

私が実現したい状況は、 を選択し- qwerty、マクロ ホットキーを押すと、結果として が- qwerty別のものに変更されるというものです。 次に を選択し- asdf、マクロ ホットキーを押すと、結果として が- asdf以前と同じものに変更されます。 次に、 についても同じことが起こります- zxc

答え1

残念ながら、単一のホットキーではそれは不可能です。

ただし、代替案はあります。

PythonScript プラグイン内で Python スクリプトを実行できます。

まだインストールされていない場合は、次の手順に従ってくださいガイド

  • スクリプトを作成する (プラグイン >> PythonScript >> 新しいスクリプト)
  • このコードをコピーしてファイルを保存します (例: replace_highlight.py):

editor.replaceSel('new text')

  • プラグイン >> PythonScript >> 設定に移動
  • スクリプトreplace_highlight.pyを選択します。
  • 保存
  • Notepad++を再起動します(ツールバーにPythonScriptアイコンが表示されます)
  • 変更したいファイルを開く
  • 置き換えたいテキストをハイライトします
  • 先ほど作成したアイコンをクリックします
  • 終わり

交換したい場合すべての出現選択したテキストの次のコードを使用します。

editor.replace(editor.getSelText(), 'NEW TEXT')

関連情報