如何修复AutoHotkey在记事本中无法粘贴换行符的问题?
解决AutoHotkey脚本在记事本中换行符失效的问题
这问题我之前折腾过好一阵,Windows自带记事本对换行的处理确实比Notepad++这类编辑器“矫情”得多!
问题根源
记事本只认\r\n(回车+换行,对应AHK里的rn)作为有效换行标记,而你脚本里用的`n只是单纯的换行符(LF)。这种格式在大多数现代编辑器里能正常解析,但记事本完全不买账,所以才会出现内容挤成一团的情况。
修复方案
这里有两种靠谱的解决办法,你可以选自己顺手的:
方法1:替换剪贴板里的换行符为rn
直接修改剪贴板赋值代码,把所有单独的n换成r`n,确保记事本能识别换行:
a & s:: Clipboard := "[source,java]`r`n----`r`n`r`n----" Sleep 100 ; 给剪贴板一点时间完成内容更新,避免粘贴不完整 Send, ^v Sleep 30 Return
方法2:直接模拟回车发送文本
如果不想依赖剪贴板,也可以用SendInput直接发送带回车的内容,{enter}会自动向记事本发送\r\n,绝对不会出问题:
a & s:: SendInput, [source,java]{enter}----{enter}{enter}---- Return
额外小提示
你原来的脚本里Sleep的位置其实没问题,但剪贴板赋值后加个100ms左右的延迟会更稳妥,避免系统还没完成剪贴板更新就执行粘贴操作,偶尔会出现粘贴不全的情况。
内容的提问来源于stack exchange,提问作者my-lord
相关产品推荐
相关产品推荐

