私は米国とヨーロッパで働いていますが、月/日 (米国) と日/月 (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...
、名前を付けます(この名前は後で使用します)
ステップ2: 同様に setup_console 構成コードを入力します。
ステップ3、4、5: ではPlugins > NppExec > Advanced Options
、setup_console を起動時に実行するように設定し (3)、日記コード用のメニュー項目を作成し (4)、メニュー項目をメニューに配置しますMacro
(5)。
ステップ6:日記スクリプトにキーボード ホットキー (ショートカット) を設定し、Settings > Shortcut Mapper... > Plugins
使用した日記スクリプト名が見つかるまで下にスクロールします...
結果:メニュー コマンドの下を見るとMacros
、キーボード ショートカット付きの新しいタイムスタンプ コマンドが表示されます。
終わり!