我的随笔记录及脚本自动化处理介绍

介绍下我的随笔工作流及相应程序与脚本。

随笔一般是一句话笔记,快速记录灵感、备忘等内容。我对随笔的要求是轻巧快速,手机或电脑上用最少的操作最快的速度可以开始记录。
电脑上我用AHK写了一个随笔工具,一键唤醒输入框,写完后一键保存。


安卓上我选用易码,在桌面放置小部分,一个点击动作后即可输入内容。

AHK与易码会将每次输入的内容保存为独立md文档,并带有精确到秒的时间。

安卓与windows间的同步我选择的是syncthing,AHK与易码新建的文档均保存于随笔草稿箱文件夹内。

工作流介绍完毕,想写啥就写,不管在哪里,记录都极简单。

2 个赞

快捷记录是第一层,除了快捷记录,我还有随笔归档的需求。比如有些是待办,我希望能够直接放到清单笔记里指定位置;有些是工作时脑子里出现的奇思妙想,最好是写下来,然后继续专心工作。有些是间歇日记,记录某个时间段的工作状态。给随笔加标签事后手动分类是一个办法,但更希望能自动把随笔处理好,下边就介绍下我的脚本。

脚本语言:AHK
脚本功能:检测每个笔记内容,对每个笔记进一步处理。
实现方法:笔记内加标签,检测到标签时按指定流程处理。

标签及动作:

  • 彡待办彡,此标签放于笔记头,会将笔记内容作为一个待办加入日计划笔记,清单节(类似于滴答清单的临时任务),笔记文件由随笔草稿箱移动到随笔文件夹。
  • 彡账单彡,标签放于笔记头,会将笔记内容作为一个条目放到账单笔记内。我记账用的是ob笔记,每次消费记录一个无序列表,格式为价格,类别,说明,示例9.8,12,晚饭,套餐,勺园 类别用数字表示,自己设置。
  • 彡工作记录彡,此标签放于笔记头,会将笔记内容及时间追加到间歇日记笔记中,自动生成当天的间歇笔记,笔记文件由随笔草稿箱移动到随笔文件夹。
  • 彡自省彡,带有此标签的笔记,会自动将笔记文件由随笔草稿箱移动到自省文件夹,自省类笔记不愿意与其它笔记放一块。
  • 彡小树洞彡,带有此标签的笔记,会自动将笔记文件由随笔草稿箱移动到小树洞文件夹,树洞类笔记,多抱怨需要单独处理。
  • 彡猴子彡,此标签放于笔记头,会将笔记内容作为一个条目放到日计划笔记,花果山节,有时间了清理此节内容,笔记文件由随笔草稿箱移动到随笔文件夹。
  • 彡待删彡,手机上用此标签,因为易码打开之后取消输入有些麻烦,带此标签的笔记由随笔草稿箱移动到待删文件夹,攒的多了直接删掉就好。最近开发个新用处,这个标签可以用于临时记录,比如记个电话号码之类。
  • 彡睡眠彡,带此标签的笔记会被移动到远控文件夹,工作电脑有另一个AHK脚本,监控到带此标签的笔记会把笔记移动归档文件夹,之后让计算机睡眠。
  • 彡息屏彡,此标签的笔记会被移动到远控文件夹,工作电脑有另一个AHK脚本,监控到带此标签的笔记会把笔记移动归档文件夹,之后让计算机锁定(最开始是息屏,后改成了锁定,代码都在,懒得改动了)。
2 个赞

相关代码:代码其实是最不重要的,但还是贴上吧。

FileEncoding, UTF-8-RAW ;20210314_1506

;闹钟210823_150407
;210913_114656随笔归档说明,带有彡自省彡,移到到自省;带有彡小树洞彡或彡负面彡,移动到小树洞;带有## 日志,移动到手机日志;常规无标志,移动到随笔并补充至间歇笔记。完全无标志,移动到随笔
;取消随笔综合文件夹。
;211030_110306,彡随笔彡标签没必要了,因为间歇日记可以有情绪类事情,原间歇日记功能由积分承担,间歇日记相当于随笔的集合。
#Persistent
SetTimer, Clocksvk, 1000
return

Clocksvk:
gosub Guidangbiji
return

Guidangbiji: ;210824_170634自动归档随笔
Loop, Files, H:\笔记\重要文件夹\随笔草稿箱\*.md
{
    笔记内容 := FileOpen(A_LoopFileLongPath, "r").Read()
    if 笔记内容 Contains 彡息屏,彡睡眠,彡亮屏彡
    { ;210912_071640
        FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\远控\
        continue
    }
    if 笔记内容 Contains 彡自省彡
    {
        FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\自省\
        continue
    }
    else if 笔记内容 Contains 彡待删彡
    {
        FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\待删\
        continue
    }
    else if 笔记内容 Contains 彡小树洞彡,彡负面彡
    {
        FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\小树洞\
        continue
    }
    else if 笔记内容 Contains ## 日志
    {
        FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\手机日志\
        continue
    }
    else if 笔记内容 Contains WEATHER = Unknown
    {
        ;FileCopy,  %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔综合\
        时间 := StrReplace(substr(笔记内容,27,8), ":")
        内容 := substr(笔记内容,75)        
		if 笔记内容 Contains 彡待办彡
		{ ;210915_132835
			待办内容 := substr(笔记内容,79)
			日计划内容 := FileOpen("H:\笔记\笔记\日计划.md", "r").Read()
			拆分 := strsplit(日计划内容,"### 清单")
			新日计划内容 := 拆分[1] . "### 清单`n- [ ] " . 待办内容 . 拆分[2]
			FileOpen("H:\笔记\笔记\日计划.md", "w").Write(新日计划内容)
			FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
			continue
		}   
        d=%A_YYYY%%A_MM%%A_DD%
        d := substr(d,3)        
		if 笔记内容 Contains 彡猴子彡
		{ ;210917_131358
			待办内容 := substr(笔记内容,79)
			日计划内容 := FileOpen("H:\笔记\笔记\日计划.md", "r").Read()
			拆分 := strsplit(日计划内容,"### 花果山")
			新日计划内容 := 拆分[1] . "### 花果山`n- " . d . "_" . 时间 . "," . 待办内容 . 拆分[2]
			FileOpen("H:\笔记\笔记\日计划.md", "w").Write(新日计划内容)
			FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
			continue
		} 
		if 笔记内容 Contains 彡账单彡
		{ ;210915_135238
			待办内容 := substr(笔记内容,79)
			日计划内容 := FileOpen("H:\笔记\笔记\3 自我管理\账单.md", "r").Read()
			拆分 := strsplit(日计划内容,"- 2021账135456单")
			新日计划内容 := "- " . d . "," . 待办内容 . "`n" . 拆分[1]
			FileOpen("H:\笔记\笔记\3 自我管理\账单.md", "w").Write(新日计划内容)
			FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
			continue
		}
		if 笔记内容 Contains 彡工作记录彡
		{ ;211011_164831
			工作记录内容 := substr(笔记内容,81)
			日计划内容 := FileOpen("H:\笔记\笔记\3 自我管理\积分.md", "r").Read()
			拆分 := strsplit(日计划内容,"- 2021账135456单")
			新积分内容 := 拆分[1] . "`n" . "- "  . 工作记录内容
			FileOpen("H:\笔记\笔记\3 自我管理\积分.md", "w").Write(新积分内容)
			FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
			continue
		}
        组合 := "###### " . d . "_" . 时间 . "`n" . 内容 . "`n`n"
        间歇日记内容 := FileOpen("H:\笔记\笔记\3 自我管理\间歇日记.md", "r").Read()
        新间歇日记内容 := 组合 . 间歇日记内容
        FileOpen("H:\笔记\笔记\3 自我管理\间歇日记.md", "w").Write(新间歇日记内容)
		sleep 300
		FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
    }
    else if 笔记内容 Contains 随笔 202
    {
        ;FileCopy,  %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔综合\
        时间 := substr(笔记内容,13,6)
        内容 := substr(笔记内容,25,StrLen(笔记内容)-32)     
		if 笔记内容 Contains 彡待办彡
		{ ;210915_132835
			待办内容 := substr(内容,5)
			日计划内容 := FileOpen("H:\笔记\笔记\日计划.md", "r").Read()
			拆分 := strsplit(日计划内容,"### 清单")
			新日计划内容 := 拆分[1] . "### 清单`n- [ ] " . 待办内容 . 拆分[2]
			FileOpen("H:\笔记\笔记\日计划.md", "w").Write(新日计划内容)
			FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
			continue
		}
        d=%A_YYYY%%A_MM%%A_DD%
        d := substr(d,3)    
		if 笔记内容 Contains 彡猴子彡
		{ ;210917_131405
			待办内容 := substr(内容,5)
			日计划内容 := FileOpen("H:\笔记\笔记\日计划.md", "r").Read()
			拆分 := strsplit(日计划内容,"### 花果山")
			新日计划内容 := 拆分[1] . "### 花果山`n- " . d . "_" . 时间 . "," . 待办内容 . 拆分[2]
			FileOpen("H:\笔记\笔记\日计划.md", "w").Write(新日计划内容)
			FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
			continue
		} 
		if 笔记内容 Contains 彡账单彡
		{ ;210915_135238
			待办内容 := substr(内容,5)
			日计划内容 := FileOpen("H:\笔记\笔记\3 自我管理\账单.md", "r").Read()
			拆分 := strsplit(日计划内容,"- 2021账135456单")
			新日计划内容 := "- " . d . "," . 待办内容 . "`n" . 拆分[1]
			FileOpen("H:\笔记\笔记\3 自我管理\账单.md", "w").Write(新日计划内容)
			FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
			continue
		}
		if 笔记内容 Contains 彡工作记录彡
		{ ;211011_164831
			工作记录内容 := substr(内容,7)
			日计划内容 := FileOpen("H:\笔记\笔记\3 自我管理\积分.md", "r").Read()
			拆分 := strsplit(日计划内容,"- 2021账135456单")
			新积分内容 := 拆分[1] . "`n" . "- "  . 工作记录内容
			FileOpen("H:\笔记\笔记\3 自我管理\积分.md", "w").Write(新积分内容)
			FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
			continue
		}
        组合 := "###### " . d . "_" . 时间 . "`n" . 内容 . "`n`n"
        间歇日记内容 := FileOpen("H:\笔记\笔记\3 自我管理\间歇日记.md", "r").Read()
        新间歇日记内容 := 组合 . 间歇日记内容
        FileOpen("H:\笔记\笔记\3 自我管理\间歇日记.md", "w").Write(新间歇日记内容)
		sleep 300
		FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
    }
    else
    {
        ;MsgBox 移动文件
        FileMove, %A_LoopFileLongPath%, H:\笔记\重要文件夹\随笔\
    }
}
Return

为便于理解,代码与上一楼内容有些许出入。

这些代码一般人拿去也没法用,因为我的AHK脚本有前置信息,所以截取内容时要砍掉部分字符。同理易码也有固定的前置信息(类似于YAML),截取内容时也砍掉了前置内容。每个人的笔记格式不同,要砍掉的字数也不同。了解思想,自己用喜欢的语言做类似的才是正理,例如用Python做一个可在Linux上运行的版本。

我的标签是用汉字包裹的,这么做是延续OneNote的习惯,OneNote中英文混杂搜索极易bug,用#标签易搜索不到,就选择了汉字生僻字包裹的方式。这样可以避免笔记内容中的词语被误识别为标签。

使用标签而不使用菜单,主要是因为标签可以设置为自定义短语。用自定义短语输入标签和内容,连贯性很好,不费力不费脑。所有的标签自定义短语编码都是拼音,例如image
image

笔记的分类与修改我认为是第二层。彡睡眠彡,彡息屏彡等调用外部命令,超脱笔记外的东西是第三层。

我有个想法,以后可以用这种方式操控智能家居,因为我讨厌所有互联网公司提供的需要登陆的服务。这种测试下来延迟大概1到2秒,效率可以,安全性也很高。使用也比打开智能加居的APP快,不管在电脑还是在手机,打开随笔,用自定义短语输入指令,0.5秒足够了。这个时间,我的米家还未开始播放广告(进入app大概2秒,启动APP首页中间大幅广告大概要1秒)。

1 个赞

易码app很不错,可以作者弃坑不更新了。
在小米手机,桌面无法添加时记这类小工具,除此之外都很完美。

我的米家没有广告哎~另外开屏广告可以用李跳跳这个app跳过,感觉挺好用


这种广告