web-dev-qa-db-ja.com

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

私は米国とヨーロッパで働いていますが、月/日(US)と日/月(EU)の形式を切り替えると、ログやメモを見るときにあいまいさが生じます(たとえば、7月8日または8月7日ですか?)。

Notepad ++タイムスタンプ機能を国際フォーマットを使用するように変更したい

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

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

曜日を綴ることは素晴らしい追加であり、カレンダーでそれが何曜日であったかを調べる必要がないことに注意してください。

現在、NPPにはこの柔軟性がありません。 おそらくRubyを使用して、ある種のマクロまたはスクリプトを使用してこれを行う方法はありますか?

8
Assad Ebrahim

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

解決策:

Approach:外部スクリプト言語(この場合は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 Excute ...ダイアログに日記コードを入力します:Plugins > NppExec > Execute...、名前を付けます(後でその名前を使用します)

Step 1 - Enter diary code

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

Step 2 - Enter console configuration code

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

Steps 3,4,5 - Getting it all setup

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

Step 6 - Keyboard shortcut

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

Result - done

完了!

6
Assad Ebrahim