我在美国和欧洲工作,在查看日志或笔记时,在月/日(美国)和日/月(欧盟)格式之间切换会导致歧义(例如,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 > Execute 菜单命令中输入以下代码片段:
// 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
菜单命令,您将看到带有键盘快捷键的新时间戳命令。
完毕!