Ass*_*him 8 script notepad++ automation ruby nppexec
我在美国和欧洲工作,在查看日志或笔记时,在月/日 (US) 和日/月 (EU) 格式之间切换会导致歧义(例如 7/8/12 7 月 8 日还是 8 月 7 日?)。
我想更改 Notepad++ 时间戳功能以使用国际格式
YYYY-MM-DD--DAY--HH:MM
2012-08-19--Sun--20:30
请注意,将一周中的哪一天拼出来会是一个很好的额外功能,并且可以避免在日历中查找它是哪一天。
目前 NPP 不具备这种灵活性。 有没有办法使用某种宏或脚本(也许使用 Ruby)来做到这一点?
分享如何使用 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
Run Code Online (Sandbox Code Playgroud)
然后在 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
Run Code Online (Sandbox Code Playgroud)
这使用 Ruby 引擎生成时间戳并将其插入到 Notepad++ 中当前文件中光标所在的位置。结果(大约有 500 毫秒的延迟)是时间戳:
2012-08-20--Mon--20:16
Run Code Online (Sandbox Code Playgroud)
注意:虽然这确实可以完成工作,但如果有人有一个不依赖任何外部(在这种情况下是 Ruby)的解决方案,那会更好。
编辑:“生产”解决方案......(鲁棒性和便利性)
通过以下步骤,可以生产上述解决方案...
一个障碍是关闭 Notepad++ 会丢失控制台配置,因此必须在每次重新启动时进行设置。
因此,我们将控制台配置设置为每次 Notepad++ 启动时自动运行的脚本。
然后为方便起见将键盘快捷键(热键)关联到日记脚本。
第 1 步: 在 NppExec Excute... 对话框中输入日记代码:Plugins > NppExec > Execute...,为其命名(稍后您将使用该名称)

第二步: 同样输入setup_console配置代码:

步骤3、4、5: 在中Plugins > NppExec > Advanced Options,设置setup_console在启动时运行(3),为日记代码创建一个Menu项(4),并将Menu项放入Macro菜单(5)中:

第 6 步:将键盘热键(快捷方式)设置为日记脚本:Settings > Shortcut Mapper... > Plugins,然后向下滚动,直到找到您使用的日记脚本名称...

结果:查看Macros菜单命令下,您将看到带有键盘快捷键的新时间戳命令。

完毕!
| 归档时间: |
|
| 查看次数: |
9324 次 |
| 最近记录: |