分享使用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 ++中当前文件中的位置。结果(大约有500ms的延迟)是时间戳:
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
菜单命令下查看,您将看到带有键盘快捷键的新Timestamp命令。
做完了!