NppExecプラグインとRubyを使用してこれを行う方法を共有します。
解決:
アプローチ:外部スクリプト言語(この場合はRuby)を取得して、フォーマットされたタイムスタンプを返し、NppExecがそれを受け取って、メモ帳++に示されている現在のファイルのカーソル位置に挿入します。
最初にコンソールを設定します。
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...
し、名前を付けます(後でその名前を使用します)。
手順2: 同様にsetup_console構成コードを入力します。
ステップ3、4、5: ではPlugins > NppExec > Advanced Options
、起動時に実行するように設定setup_console(3)、日記コードのメニュー項目を作成する(4)、およびにメニュー項目を入れてMacro
、メニュー(5):
手順6:ダイアリースクリプトにキーボードホットキー(ショートカット)を設定し、Settings > Shortcut Mapper... > Plugins
使用したダイアリースクリプト名が見つかるまで下にスクロールします...
結果:Macros
メニューコマンドの下に、キーボードショートカットを含む新しいタイムスタンプコマンドが表示されます。
できた!