不断改进

写博客如同看电影,过程都是遇到困难、找到方案、解决问题,最后写篇博客分享快乐,“从比以后公主和王子就过上了幸福的生活”。事实上,有时比这还要好。读了博客以后,会有师长朋友指出更好的方案,“那么那么整更好”,“你解决不了的那个小问题,其实这么一整就行”。我经常试试,有时经年累月再写一篇博客。今天这篇,就是几个后来的改进。

0. 修煤气灶

当初修煤气灶坏了,接了根线,一切恢复现象正常。甚是得意,写博客炫耀。立马跳出来好几位,告诉我有危险。吓得我赶紧修改博客,说明危险,免得误导别人;下单了阻燃线,又一次修好以后再发博客。

这是更新最快的一次,剩下的就没有这么及时了,有的拖了几年才改进,到这篇博客又过了几年。

1. 修跳跳灯 互锁

跳跳灯弹簧勒在柱子上,限位器的塑料疲劳或氧化变性断裂,弹簧容易脱落。以前写过这篇https://zhuanlan.zhihu.com/p/669324968,先用圆珠笔芯,后来用蝴蝶螺帽,作为限位器。

Zack老师在朋友圈和私聊分别告诉我,这样还不够完美。应该在蝴蝶螺帽的外面再加一个普通的螺帽,普通螺帽和蝴蝶螺帽拧紧以后会 互锁,这样就更稳定了,用上个十来年不成问题。

我手头没有螺帽,担心网购买到的不匹配,犹豫了一段时间,就这么对付着用。后来读机械入门的书,突然想到,螺帽的规格仅有限的几种,尺寸不是连续的,相邻两种的差别足够大,所以我的测量误差不成问题。下单,三四颗螺丝和一堆螺丝的价格没啥差别,就买了一小包。用掉了其中的几颗,普通螺帽和蝴蝶螺帽互锁,果然稳固。

剩下的螺帽能干点啥呢?用来打弹弓挺好,不过太危险了。焊接成摆件,先做个电焊机,护目镜哪里来?先搁置吧。

感谢 Zack 老师教诲。

2. 用键盘操作浏览器 提示文字不遮挡、开新tab

我用 Vimium有一段时间了,写过这篇博客 https://zhuanlan.zhihu.com/p/583683300。后来希望打开每个链接的时候开新的标签页TAB,不希望打断我当前的注意力,不要立即跳转。事实上,不仅读网页,我看朋友圈和公众号的时候,内容也很少立即读,而是加到滴答清单里,有时间再读。等到我有时间,贴子可能已经消失了。也罢,假设它不重要吧,不读地球照样转。

改了这段配置 Custom key mappings。

unmap f

unmap F

map f LinkHints.activateModeToOpenInNewTab

后来又加了一些按键,左手与游戏CS相同的键位操作上下翻页,以及退回上一页。

map s scrollDown

map w scrollUp

map z goBack

又发现,按f以后链接上的提示文字会遮挡链接,容易看不清要跳到到的链接。效果是这样的。

C:\Users\young\Documents\WeChat Files\wxid_mkn03idldug522\FileStorage\Temp\ef129b1745f17ad76ed0bc96cdb3f38.jpg

拖了一段时间,终于下定决定改了,效果如下。红色的是提示文字,输出以后跳转对应的链接。提示文字下的链接没被遮挡,仍然可以看到。

修改方法是这样的,改CSS for Vimium UI。

div > .vimiumHintMarker {

/* linkhint boxes */

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(255 247 133/ 10%)),

color-stop(100%,rgb( 255 197 66/10%)));

border: 1px solid #E3BE23;

}

div > .vimiumHintMarker span {

/* linkhint text */

/*color: black;*/

color: red;

/*font-weight: bold;*/

font-weight: normal;

font-size: 12px;

}

div > .vimiumHintMarker > .matchingCharacter {

}

3. 随机播放音乐 隐藏窗口

之前写过这一篇 https://zhuanlan.zhihu.com/p/666430615,更早还写过一行代码随时播放音乐的。都有个缺点,会弹出一个窗口,会干扰我当前的工作,虽然只有一瞬间,得手动切到后台。

这么解决,运行如下脚本,随机播放当前目录下的音乐。

IFS=$'\n'

for i in `ls | shuf`

do

echo "$i"

ffplay "$i" -hide_banner -loglevel error -autoexit &

pid=$!

sleep 1

c:/tools/AHK/AutoHotkeyU64.exe hide.ahk

wait $pid

done

其中的 hide.ahk 是 ahk 脚本,小工具,内容如下,作用是把 ffplay 切到后台。

WinHide ahk_exe ffplay.exe

有时候还想把 ffplay 呼到前台,切换歌典或者暂停什么的,用下面这个脚本 unhide.ahk。

WinShow ahk_exe ffplay.exe

仍然有个缺点。在ffplay窗口隐藏了之后,只是看不到,键盘操作比如上下左右,焦点仍然在 ffplay 中,所以会跳到音乐的某个时间点。需要手动 ctrl+tab 切换一下,到当前正在工作的窗口。暂时没找到办法,感觉可以忍。

为了解决这个问题,还试过 gplay.exe 等工具。不错,但是没有解决我的问题。

还发现上一个版本的脚本遇mp3文件名中有空格时会出错,已经解决了,就是上述代码中$i外面的那对引号。

4. 滴答清单任务顺延 用tampermonker脚本

这个单独写了一篇博客,即 https://younggift.net/9666。更早的方法 https://zhuanlan.zhihu.com/p/681570615。

新的方法不再独占鼠标和键盘焦点,并且可以把浏览器切到后台,不影响当前工作。

在上一个版本的使用过程中,还发现一个 bug。AHK操作界面是的图像匹配是精确的。如果控件上有文字,windows加了抗居齿以后,有相当高的概率匹配不上。我一度以为加上某个参数是增加模糊对比功能。并不是,后来细读手册才发现记忆有误,那是某个区域透明。虽然有时候也能达到我想要的效果,因为把文字区域视为透明抠掉了,但并非我以为的模糊或粗略对比。这一bug在使用tampermonker脚本后一并解决了。

5. everything在离线的移动硬盘中查找文件 不必手动更新

以前写过一篇 https://zhuanlan.zhihu.com/p/28835500,移动硬盘即使离线也能检索。发贴以后,有不少牛人给出替代方案,tree啦,totalcommander做dir啦。所有这些方案,包括我写的这个,都有一个共同缺点,就是手动操作的过程必不可少。移动硬盘有变化就要手动操作更新 everything的文件、tree或者dir,这可太麻烦了。我只有在大量更新以后才做,慢慢就变成了不做更新。

最近发现了更方便的方法,只要把移动硬盘插上,everything会自动更新数据库,完全不必手动操作建立efu,不需手动更新。

在这个位置

Everything | options | Indexes | NTFS | Local NTFS volumes | Descartes (C:\mnt\Descartes)

做如下选择

Include in database, checked

Monitor changes, checked

其中 Descartes 是我的一块移动硬盘,mount 在 C:\mnt\Descartes 这个空目录挂载点上。用mount不用盘符的好处,是每次插上移动硬盘,文件的目录都是固定的。

做上述选择后,每次把移动硬盘插上,everything自动更新数据库,在左下角显示状态,扫描、索引、排序文件名,时间很短。完全不必手动操作建立efu,不需手动更新。移动硬盘离线以后,仍能搜索。

如下图中前2行所示,Descartes这块移动硬盘没有插在机器上,也在搜索的结果里;后2行是本地硬盘上的文件。

写这篇的时候还发现了一些替代方案,在 everything 里导出之类的,都没有我上面提到这个方便。

Leave a Reply

Your email address will not be published. Required fields are marked *