592 words
3 minutes
missing semester
- 元编程
- 调试
宏
q{字符}
来开始在寄存器{字符}
中录制宏q
停止录制@{字符}
重放宏- 宏的执行遇错误会停止
{计数}@{字符}
执行一个宏{计数}次- 宏可以递归
- 首先用
q{字符}q
清除宏 - 录制该宏,用
@{字符}
来递归调用该宏 (在录制完成之前不会有任何操作)
- 首先用
- 例子:将 xml 转成 json (file)
- 一个有 “name” / “email” 键对象的数组
- 用一个 Python 程序?
- 用 sed / 正则表达式
g/people/d
%s/<person>/{/g
%s/<name>\(.*\)<\/name>/"name": "\1",/g
- …
- Vim 命令 / 宏
Gdd
,ggdd
删除第一行和最后一行- 格式化最后一个元素的宏 (寄存器
e
)- 跳转到有
<name>
的行 qe^r"f>s": "<ESC>f<C"<ESC>q
- 跳转到有
- 格式化一个的宏
- 跳转到有
<person>
的行 qpS{<ESC>j@eA,<ESC>j@ejS},<ESC>q
- 跳转到有
- 格式化一个标签然后转到另外一个的宏
- 跳转到有
<person>
的行 qq@pjq
- 跳转到有
- 执行宏到文件尾
999@q
- 手动移除最后的
,
然后加上[
和]
分隔符
端口转发
分为本地端口转发和远程端口转发
Mosh(即 mobile shell )对 ssh 进行了改进,它允许连接漫游、间歇连接及智能本地回显。 kill -0 则不会发送信号,但是会在进程不存在时返回一个不为0的状态码
Hammerspoon (macOS 桌面自动化)
Hammerspoon 是面向 macOS 的一个桌面自动化框架。它允许用户编写和操作系统功能挂钩的 Lua 脚本,从而与键盘、鼠标、窗口、文件系统等交互。
下面是 Hammerspoon 的一些示例应用:
- 绑定移动窗口到的特定位置的快捷键
- 创建可以自动将窗口整理成特定布局的菜单栏按钮
- 在你到实验室以后,通过检测所连接的 WiFi 网络自动静音扬声器
- 在你不小心拿了朋友的充电器时弹出警告
从用户的角度,Hammerspoon 可以运行任意 Lua 代码,绑定菜单栏按钮、按键、或者事件。Hammerspoon 提供了一个全面的用于和系统交互的库,因此它能没有限制地实现任何功能。你可以从头编写自己的 Hammerspoon 配置,也可以结合别人公布的配置来满足自己的需求。
资源
- Getting Started with Hammerspoon:Hammerspoon 官方教程
- Sample configurations:Hammerspoon 官方示例配置
- Anish’s Hammerspoon config:Anish 的 Hammerspoon 配置
missing semester
https://tubehao.github.io/blog/posts/learn/missing-semester/