1

私は N++ でマクロに対して正常に動作する単純なNPP_Execコマンドを使用しています。例えば。:

NPP_MENUCOMMAND Macro/Action1
NPP_MENUCOMMAND Encoding/Convert to ANSI
NPP_SAVE

しかし、特定のマクロを複数回実行するにはどうすればよいでしょうか? 試してみNPP_MENUCOMMAND Macro/Run ましたが、必要なマクロを手動で選択し、ポップアップ ウィンドウで [行末まで実行] に設定する必要があります。

4

2 に答える 2

0

次のような単純なループには NppExec プラグインを使用できます。

:REPEAT
  SCI_SENDMSG SCI_GETCURRENTPOS
  set pos1 = $(MSG_RESULT) 

  // put your Macro invocation here instead of the linedown:
  SCI_SENDMSG SCI_LINEDOWN

  SCI_SENDMSG SCI_GETCURRENTPOS
  set pos2 = $(MSG_RESULT) 

  // if the linedown (or your macro) doesnot give another pos, we have reached the end
  if $(pos1) == $(pos2) goto END
  // else loop
  goto REPEAT

:END
  • 現在の位置を保存します
  • 次に、位置を進める何かを行います(この例ではラインダウンです。そこにマクロ呼び出しを配置し​​、カーソル位置が変更されることを確認します)
  • 次に、位置が保存された位置と比較されます。位置が変更されていない場合は、最後に到達しています。
  • この場合、ループを終了します
于 2016-06-18T19:47:53.070 に答える