【AHK】快速记录闪念到Obsidian

61 篇文章 6 订阅
5 篇文章 1 订阅

在obsidian未打开情况下,如何快速录入闪念

问:

最近一直在找可以在关闭Obsidian的情况下快速记录闪念的方案,昨天发现了这个
https://forum.obsidian.md/t/heres-my-autohotkey-solution-for-quick-and-easy-journaling-auto-logging-of-what-youre-doing/25506
使用Autohotkey,更改一下脚本路径就可以用,昨天用的还挺顺利。今天Obsidian更新到1.0之后,发现使用Autohotkey呼出的窗口输入中文后,用其他编辑器打开还正常,一旦在Obsidian中打开就出现乱码,并且在资源浏览器中再用其他编辑器打开也同样是乱码了……,就是说一旦用Obsidian打开后,文件就发生变动了,请教各位,这是啥问题呀?输入英文没这个问题

B站上的及时春雨和台湾简睿老师都有用ahk迅速记录笔记的脚本,不过定制的东西太多,这个脚本相对简洁

答:可以试着在 AHK脚本第一行加上 FileEncoding,UTF-8
另外ahk脚本本身也要另存成UTF-8 BOM格式,避免中文解析问题。


; TimeLogger
; ----------

; User-configurable variables:
; ----------------------------
FileEncoding,UTF-8
AppLoggingRate = 10 ; Rate for capturing active window titles - number in seconds
; LogPath = ENTER-PATH-WHERE-YOU-KEEP-YOUR-JOURNALING-NOTES-IN-OBSIDIAN'S-VAULT. (Full path please. And yes, erase EVERYTHING on this line after the equals sign and add the path).
LogPath = G:\myBase\多思考少烦恼\Zettelkasten\journals\
AppLogFile = yes ; Use separate AppLog file instead of a single AppLog/Journal file. Yes/No.
SectionTitles = no ; Add H5 headings before every entry.
FirstRun = 0 ; Change to 1 if you want to be automatically asked for an initial log entry after startup.


; Non-configurable stuff:
; -----------------------
; (Please, don't touch)

LastActiveWindow = 
AppLogSwitch = 1
JournalSwitch = 1
RunTime = 0
SleepTime := AppLoggingRate * 1000


; Actual script:
; --------------
	
	Gui, TimeLogger: Font, s12
	Gui, TimeLogger: Add, Edit, vLoggerContent x10 y10 w500 h600,
	Gui, TimeLogger: Font
	Gui, TimeLogger: Add, Button, gLogSave x10 y620 w500 h50, &Save Log Entry


	Gui +LastFound +OwnDialogs +AlwaysOnTop
	InputBox, LoggerRate, TimeLogger Ultimate Hyper Rainbow Edition, When do you want me to check on you?`n`n(time range in minutes)



	Loop
	{
		JournalTime := LoggerRate * 60000
		RunTime := RunTime + SleepTime
		
		Sleep, %SleepTime%
		
		WinGetActiveTitle, ActiveWindow
		StoreActiveWindow = %ActiveWindow%
		
		If ActiveWindow != %LastActiveWindow%
		{
			FormatTime, LogTime,, HH:mm:ss
			FormatTime, LogFilename, , yyyy-MM-dd
			; LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")
			LogWindow := ActiveWindow
			
			If AppLogFile = yes
				{
					LogFilename = %LogFilename%_AppLog.md
				}
			Else
				{
					LogFilename = %LogFilename%.md
				}
				
			LogFile = %LogPath%%LogFilename%
			
			
			if (AppLogSwitch = 1) or (SectionTitles = yes)
				{
					FileContent = `n##### AppLog`n%LogTime% - %LogWindow%`n`n- - -`n
				}
			else
				{
					FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
				}
				
			AppLogSwitch = 0
			JournalSwitch = 1
			sleep, 20

			FileAppend, %FileContent%, %LogFile%  ;FileAppend [, Text, Filename, Encoding]
		}
		
		
		
		If (RunTime = JournalTime) or (FirstRun = 1)
		{
			InputBox, LoggerExcuse, TimeLogger Ultimate Hyper Rainbow Edition, GOTCHA - what are you doing?`n`n`n(Manual Journaling: Windows Key + J)`n(Stop logging/Exit TimeLogger: Shift + Windows Key + L)
			sleep, 20
			FormatTime, LogTime,, HH:mm:ss
			;FormatTime, LogFilename, , yyyy-MM-dd_dddd
			FormatTime, LogFilename, , yyyy-MM-dd
			LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")
			LogFilename = %LogFilename%.md
			LogFile = %LogPath%%LogFilename%
			
			If SectionTitles = yes
				{
					FileContent = `n- - -`n##### AutoJournal`n%LogTime% - %LoggerExcuse%`n`n- - -`n
				}
			Else
				{
					FileContent = `n- - -`n%LogTime% - %LoggerExcuse%`n`n- - -`n
				}
			sleep, 20
			RunTime = 0
			AppLogSwitch = 1
			JournalSwitch = 0
			FirstRun = 0

			FileAppend, %FileContent%, %LogFile%
		}
		WinActivate, %StoreActiveWindow%
		LastActiveWindow = %ActiveWindow%
	}
		

WriteJournal:
		FormatTime, LogTime,, HH:mm:ss
		;FormatTime, LogFilename, , yyyy-MM-dd_dddd
		FormatTime, LogFilename, , yyyy-MM-dd
		WinGetActiveTitle, ActiveWindow
		StoreActiveWindow = %ActiveWindow%

		; LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")
		LogWindow :=ActiveWindow
		LogFilename = %LogFilename%.md
		LogFile = %LogPath%%LogFilename%
		If SectionTitles = yes
				{
					FileContent = `n- - -`n##### Journal`n%LogTime% - %LoggerContent%`n`n- - -`n
				}
		Else
				{
					FileContent = `n%LogTime% - %LoggerContent%`n`n- - -`n
				}
		FileAppend, %FileContent%, %LogFile%
		WinActivate, %StoreActiveWindow%
return

LogSave:
	Gui, TimeLogger: Submit, Hide
	GuiControlGet, LoggerContent
	sleep, 20
	GoSub, WriteJournal
	GuiControl, TimeLogger:, LoggerContent, 
return

#J::
	Gui, TimeLogger: Show
return

#+l::
		ExitApp
return

ExitApp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值