NppExec と Ruby を使用して Notepad++ の新しいマクロ機能をスクリプト化する

NppExec と Ruby を使用して Notepad++ の新しいマクロ機能をスクリプト化する

私は米国とヨーロッパで働いていますが、月/日 (米国) と日/月 (EU) の形式を切り替えると、ログやメモを確認するときに曖昧さが生じます (例: 7/8/12 は 7 月 8 日ですか、それとも 8 月 7 日ですか?)。

Notepad++のタイムスタンプ機能を国際形式に変更したい

YYYY-MM-DD--DAY--HH:MM

2012-08-19--Sun--20:30

曜日を明記しておくと便利なので、カレンダーで何曜日かを調べる必要がなくなります。

現在、NPP にはこのような柔軟性がありません。 何らかのマクロやスクリプト、たとえば Ruby を使用してこれを行う方法はありますか?

答え1

NppExec プラグインと Ruby を使用してこれを行う方法を共有します。

解決:

アプローチ: 外部スクリプト言語 (この場合は Ruby) を取得してフォーマットされたタイムスタンプを返し、NppExec がそれを受信して​​、Notepad++ に表示されている現在のファイル内のカーソル位置に挿入します。

まずコンソールを設定します:

    npe_console v+   // set console to receive output in $(OUTPUT) variable
    npe_console d+   // set current working directory to same as current file

次に、NppExec > 実行メニュー コマンドで、次のスニペットを入力します。

    // Diary snippet (Generates timestamp YYYY-MM-DD--DAY--HH:MM for NPP++)
    npp_console disable     // turn off output displaying to console
    // this ruby one-liner does the work
    ruby -r Date -e "dt=DateTime.now; dname = Date::ABBR_DAYNAMES[dt.wday]; puts dt.strftime(\"%Y-%m-%d--#{dname}--%H:%M\");"  
    sel_settext $(OUTPUT)   // put result at cursor in current file
    npp_console enable      // restore output displaying to console
    npp_console 0           // hide the console window

これは、Ruby エンジンを使用してタイムスタンプを生成し、Notepad++ の現在のファイル内のカーソルがある場所に挿入します。結果 (約 500 ミリ秒の遅延あり) はタイムスタンプです。

    2012-08-20--Mon--20:16

注記:これは確かに目的を果たしますが、外部のもの (この場合は Ruby) に依存しないソリューションがあれば、それがより良いでしょう。


編集: ソリューションを「製品化」する... (堅牢性と利便性)

以下の手順に従うことで、上記のソリューションを製品化できます...

問題は、Notepad++ を閉じるとコンソール構成が失われるため、再起動するたびにこれを設定する必要があることです。

そこで、Notepad++ が起動するたびに自動的に実行されるスクリプトとしてコンソール構成を設定します。

次に、便宜上、日記スクリプトにキーボード ショートカット (ホットキー) を関連付けます。

ステップ1: NppExec 実行...ダイアログに日記コードを入力しPlugins > NppExec > Execute...、名前を付けます(この名前は後で使用します)

ステップ1 - 日記コードを入力

ステップ2: 同様に setup_console 構成コードを入力します。

ステップ2 - コンソール構成コードを入力する

ステップ3、4、5: ではPlugins > NppExec > Advanced Options、setup_console を起動時に実行するように設定し (3)、日記コード用のメニュー項目を作成し (4)、メニュー項目をメニューに配置しますMacro(5)。

ステップ3、4、5 - セットアップを完了する

ステップ6:日記スクリプトにキーボード ホットキー (ショートカット) を設定し、Settings > Shortcut Mapper... > Plugins使用した日記スクリプト名が見つかるまで下にスクロールします...

ステップ6 - キーボードショートカット

結果:メニュー コマンドの下を見るとMacros、キーボード ショートカット付きの新しいタイムスタンプ コマンドが表示されます。

結果 - 完了

終わり!

関連情報