Notepad ++のマクロを作成して、char1、char2、char3をそれぞれchar4、char5、char6に置き換えたいと思います。
9 に答える
Notepad++ のマクロは、エンコードされた一連の操作にすぎません。記録を開始し、バッファを操作し、おそらくメニューをアクティブにし、記録を停止してからマクロを再生します。
調査の結果、それらは Macros セクションの Shortcuts.xml ファイルに保存されていることがわかりました。たとえば、私はそこにいます:
<Macro name="Trim Trailing and save" Ctrl="no" Alt="yes" Shift="yes" Key="83">
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
<Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
<Action type="2" message="0" wParam="42024" lParam="0" sParam="" />
<Action type="2" message="0" wParam="41006" lParam="0" sParam="" />
</Macro>
ソースは見ていませんが、一見すると、Scintilla (編集コンポーネント、おそらくタイプ 0 と 1) と Notepad++ 自体 (おそらくメニュー項目のアクティブ化) にメッセージが送信されていると言えます。
ダイアログでのアクション(検索/置換など)を記録するとは思わない。
Scintilla.ifaceファイルを見ると、2170 が ReplaceSel のコード (つまり、挿入文字列が何も選択されていない)、2327 が Tab コマンド、Resource Hacker (手元にあるだけで...) が 42024 であることがわかります。 Trim Trailing Space" メニュー項目と 41006 は "Save" です。
アクション タイプ 0 は数値パラメータを持つ Scintilla コマンド用、タイプ 1 は文字列パラメータを持つコマンド用、2 は Notepad++ コマンド用だと思います。
問題: Scintilla には「すべて置換」コマンドがありません: 確認の有無にかかわらず、反復を実行するのはクライアントのタスクです。
別の問題: タイプ 1 アクションは 1 文字に制限されているようです (手動で編集しました、N++ を終了するときに切り捨てられました)。
いくつかのトリックを試しましたが、そのようなタスクはマクロ機能を超えているのではないかと心配しています。
おそらく、Lua スクリプト機能を備えた SciTE (または Python でスクリプト可能と思われるプログラマーのメモ帳) が優位に立つところです... :-)
[編集]このスレッドまたは同様の場所から上記のマクロを取得したようです... :-) 最初の行は不要だと思います (副作用または記録) が、とにかくマクロ コードの良い例でした。
プラグインを使用すると、Python の形式で単純なマクロを記述でき、Python で記述された非常に優れたドキュメントとサンプル マクロも取得できるため、Notepad++ 用の' Python Script ' プラグインがより便利であることがわかりました。Python に慣れている場合は、「Python スクリプト」が最適だと思います。詳細については、http: //npppythonscript.sourceforge.net/を参照してください。
マクロを記録したところ、%APPDATA%\Notepad++\shortcuts.xml で見つかりました。このスレッドの最初の投稿に投稿されたようです。
NPP Ver.を使用しています。Win7 の 5.9.6.2。
この投稿は、少し関連するものとして役立ちます:
RegEX を使用して Notepad ++ でプレフィックスとアペンドを追加する
英数字の単語を想定すると、次を使用できます。
検索 = ^([A-Za-z0-9]+)$ 置換 = 可能:"\1"
または、単に行を強調表示して、[すべて置換] と [選択範囲内] を使用する場合 (同じ置換を使用):
検索 = ^(.+)$
^ は行頭を指します。$ は行末を指します。
\1 は、括弧内のソース マッチになります。
私の個人的な経験では、Notepad++ の終了時に、shortcuts.xml が最初に読み込まれた + 後で記録されたマクロと設定で上書きされます。したがって、このファイルの編集に Notepad++ 自体を使用することはできません。
Notepad++ を閉じ、別のツールで Shortcuts.xml を編集し、保存して Notepad++ を再起動します。
これが役立つかどうかはわかりませんが、スニペットを保持するマクロを作成する必要があったため、アイテムを挿入してショートカットを設定することを記録しました。確かに、私はバージョン 5.9 を使用していないので、わずかなバージョンの違いがあるかもしれません。マクロ レコーダーにアクセスするには、[マクロ] > [記録の開始] に移動します。次に、アクションを実行してから、[マクロ] > [記録の停止] に移動します。再生して正しいことを確認してから、ショートカット キーを保存して設定することをお勧めします。
役立つことを願っています。
v5.9.1でこれを行いました。マクロ メニューに移動し、[記録を開始] をクリックし、3 つのすべてのコマンドを置き換えてから、記録を停止します。次に、「現在記録されているマクロを保存」を選択して、好きなだけ再生すると、期待どおりに置換が実行されます。
実際、shortcuts.xml ファイルにはユーザーが生成したマクロは保存されておらず、この情報を含む明らかな候補はありません。これらの指示は古くなっています。
さまざまな Web サイトのヒントに反して、ユーザーが生成したマクロの保存は v.5.4.2 では有効になっていません。その XML ファイルはそこにありますが、マクロは保存されません。
次のバージョンで修正されるバグだと思います。