Markdown Viewer: 轻量 Markdown 预览工具

背景 在 Claude Code 会话里经常会生成一些 Markdown 文档,想快速看一下渲染效果。VS Code、Cursor 能预览,但启动慢,只为看一篇文档不值得。这里记录几个轻量的方案,以 macOS 为主。 Markdown 语法本身见 Markdown 语法。 方案对比 工具 类型 价格 适合场景 QuickLook + QLMarkdown Finder 预览插件 免费 只看不改,按空格即出 MarkEdit 原生 macOS 编辑器 免费 边看边改 glow 终端 TUI 免费 留在终端里读,跨平台 mdcat 终端渲染 免费 kitty / iTerm2 下能显示图片 Typora 所见即所得编辑器 付费 长文写作 Marked 2 预览器 付费 配合任意编辑器实时预览 日常用 QuickLook 看、MarkEdit 改就够了,两个都是原生应用,启动不到一秒。 QuickLook + QLMarkdown QLMarkdown 给 macOS 的 QuickLook 加上 Markdown 渲染,支持 GFM、表格、代码高亮、mermaid。 brew install --cask qlmarkdown 装完后首次需要打开一次 QLMarkdown.app,让系统注册扩展。之后在 Finder 选中 .md 文件按空格就是渲染后的效果。 ...

Created 20206-10-20 · Updated 20206-10-20 · 2 min · 243 words · -

Linux Containers on macOS: Colima, Apple container, OrbStack

macOS 内核不能直接跑 Linux 容器,所有方案都是先起一个 Linux 虚拟机,再在里面跑容器运行时。区别在于虚拟机怎么起、几个容器共用一台虚拟机、对外提供什么 CLI。 分层 层级 例子 作用 容器运行时 containerd、Docker Engine 拉镜像、起容器,跑在 Linux 里 Mac 上的 Linux 环境 Colima(基于 Lima)、Apple container、OrbStack、Docker Desktop 在 macOS 上提供 Linux 虚拟机,并把 CLI 暴露给宿主 CLI nerdctl、docker、container 用户敲的命令 containerd 和 Colima 不是同一类东西:containerd 是引擎,Colima 负责给 containerd 准备一台 Linux 虚拟机。 Colima 基于 Lima,所有容器共用一台 Linux 虚拟机 运行时可选 docker 或 containerd,选 containerd 时用 nerdctl,和 Linux 服务器上的用法一致 支持 compose(nerdctl compose 或 docker compose),可选内置 k3s MIT 协议,商用免费,只有 CLI brew install colima # native arm64 VM, use Rosetta for amd64 images colima start --arch aarch64 --vm-type vz --vz-rosetta --runtime containerd colima nerdctl -- run --rm hello-world colima list colima stop 注意 --arch x86_64 会让整台虚拟机走模拟,在 Apple Silicon 上很慢。需要 amd64 镜像时,用 arm64 虚拟机加 --platform linux/amd64 构建即可。 ...

Created 15156-10-15 · Updated 15156-10-15 · 2 min · 252 words · -

Doubao IME 豆包输入法

豆包输入法 macOS 上的 AI 语音输入法,来自字节跳动。参见 macOS Apps 中的输入法列表。 官网:shurufa.doubao.com 手动安装:官网下载 DoubaoImeInstaller_*.zip,双击安装器按 GUI 引导完成 Homebrew:brew install --cask doubaoime,安装到 /Library/Input Methods/DoubaoIme.app Ansible(w10n-config 仓库,内部同样用 Homebrew Cask;已有官网安装时首次加 --force 接管): cd infra/homelab/workstation task install-doubao-ime brew install --cask doubao 安装的是豆包 AI 聊天客户端,不是输入法。 装好后还需在系统设置中手动完成: 键盘 → 输入法:添加「豆包输入法」 隐私与安全性:为豆包输入法开启辅助功能;使用语音时需允许麦克风 若菜单栏或切换异常,注销或重启后再试 语音输入后自动切回英文输入法 豆包的跨输入法语音输入结束后会停在豆包拼音上,不会切回原来的输入法。我用 Hammerspoon 监听麦克风状态补上了自动切回,见 Doubao IME Voice Input: 语音输入后自动切回英文输入法。 竞品 以下是 macOS 上中文语音输入的几类选择,整理于 2026-10,产品和价格变化快,以各家官网为准。 中文输入法自带语音 和豆包用法一样,都是在一个输入法里带语音输入。 产品 说明 讯飞输入法 Mac 版 中文语音识别做得最久,方言、专业术语、长句的口碑好 微信输入法 Mac 版 免费、轻量,有语音输入 搜狗输入法 Mac 版 有语音输入,Mac 版的语音体验一般不如手机端 百度输入法 Mac 版 同上 豆包的优势在大模型带来的标点、断句和口语整理(去掉「嗯」「那个」等),并且免费。 ...

Created 10106-07-10 · Updated 15156-10-15 · 1 min · 143 words · -

Doubao IME Voice Input: 语音输入后自动切回英文输入法

问题 我平时在 macOS 上停在英文 ABC 输入法。豆包输入法 开了「跨输入法启用语音」后,在任何输入法下都能用快捷键唤起豆包的语音输入,我设置了两个键: 模式 快捷键 用途 按住说话,松开结束 Fn 短句 按一下开始,再按一下结束 右 Option 长段 唤起时豆包会把系统输入法切到豆包拼音,语音结束后不会切回来。接下来打字就是中文,每次都要再按一下切回 ABC。 我想要的效果是:语音输入结束后自动回到唤起前的输入法。豆包当前版本没有这个选项,所以用 Hammerspoon 补上。 第一版:监听按键(不成功) 最直接的思路是监听快捷键:按下时记下当前输入法,结束时切回去。 Fn 模式:松开即结束,不用记状态 右 Option 模式:数按键次数,按单数次记下输入法,按双数次切回 写好后按 Fn 测试,没有切回。在脚本里加了日志才看出两个问题。 Hammerspoon 没有辅助功能权限 日志里 hs.accessibilityState() 一直是 false。权限要在「系统设置 → 隐私与安全性 → 辅助功能」里开,不是左侧栏顶层那个「辅助功能」(那里是 VoiceOver、缩放这类功能)。 开了之后还是 false,原因是 macOS 的这个权限只在进程启动时生效。我在设置里关了再开、删掉再加回来都没用,Hammerspoon 一直是开权限之前启动的那个进程。退出 Hammerspoon 再打开后,权限才变成 true。 豆包把 Fn 吞掉了 权限正常以后,Control、Caps Lock、右 Option 都能在日志里看到,Fn 一次都没有出现。我又用 hs.eventtap.checkKeyboardModifiers() 轮询 Fn 的按下状态,按住 Fn 说话的整个过程中也一直读到未按下。 所以豆包在更底层把 Fn 拦截了,Hammerspoon 拿不到这个键的任何信息,靠按键判断的方案走不通。右 Option 倒是能收到,但切换模式要数按键次数,如果用 Esc 或鼠标结束语音,计数就会错位。 ...

Created 15156-10-15 · Updated 15156-10-15 · 3 min · 455 words · -

Homebrew (brew)

简介 Homebrew 是 macOS 上最流行的包管理器,用于安装和管理命令行工具及应用程序。 brew 会把软件安装在用户主目录里,不需要 sudo brew(formula)装的主要是命令行工具 brew cask 装的大多是有 GUI 界面的 app 以及驱动 Formula 与 Cask 的区别 两者的本质区别是安装方式,不是有没有 GUI: formula:需要从源码编译或解压二进制的工具,brew 完全管理其生命周期 cask:处理 .dmg、.pkg、.zip(含 .app)这类"分发包",安装时需要复制到 /Applications、注册 UTI、处理系统权限等,安装/卸载逻辑与 formula 完全不同 两套安装逻辑分开,互不干扰,也便于用户区分"这是个 CLI 工具"还是"这是个桌面 App"。 实际使用中的经验规律: 类型 典型情况 例外 formula(不加 --cask) 命令行工具、库 极少数带 GUI cask(--cask) GUI 桌面 App google-cloud-sdk、android-platform-tools 等纯 CLI 官方说法是:cask 用于安装"macOS native apps and large binaries",重点是分发形式(预编译的大型安装包),而不是有没有界面。 Homebrew 术语表(酿酒比喻) Homebrew 整个项目名叫"家酿啤酒",术语全部来自酿酒场景: 术语 酿酒含义 对应概念 formula 配方 软件的安装脚本 keg 酒桶 安装后的目录(/usr/local/Cellar/<pkg>) cellar 酒窖 所有已安装包的存放处 tap 水龙头(接上一个新酒桶) 接入一个新的软件仓库 cask 大木桶(装整瓶酒) 完整的 macOS App bottle 预先装好的瓶子 预编译的二进制包 安装与卸载 brew # 安装 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 卸载 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)" 常用命令 # 搜索 brew search foo # 安装 brew install ansible brew install --cask obsidian # 卸载 brew uninstall packageName # 列出已安装的包 brew list # 查看所有需要更新的包 brew outdated # 更新某一个包 brew upgrade package0 # 更新所有包,相当于 Arch Linux 的 pacman -Syu # brew upgrade 会自动先执行 brew update 刷新 formula 列表,再升级所有包 brew upgrade # 配置信息 brew config # 检查系统问题 brew doctor 不认识的包怎么查 brew upgrade 或 brew outdated 里经常出现一些不认识的包名,多数是别的软件的依赖,被顺带装上。按下面的顺序查: ...

Created 11116-06-11 · Updated 22226-09-22 · 3 min · 429 words · -

System Libraries: 跨平台底层库速查

包管理器升级时,经常会看到一些不认识的底层库(harfbuzz、giflib、little-cms2 等)。它们通常不是自己主动装的,而是被某个上层软件依赖,顺带装上。 这篇文章记录这些底层库是什么、做什么、各平台叫什么包名。库本身是跨平台的,macOS(Homebrew)、Linux(apt / pacman / dnf)上都有,因此不按平台拆分。 遇到不认识的包时,怎么在 macOS 上查依赖关系,见 Homebrew (brew)。 索引 库 功能 常见使用方 harfbuzz OpenType 文本整形(text shaping) Pango、Qt、Firefox、Chromium、LibreOffice、OpenJDK freetype 字体解析与字形光栅化 Linux 桌面、Android、OpenJDK、各类游戏引擎 giflib GIF 图片编解码 OpenJDK、ImageMagick libpng PNG 图片编解码 几乎所有图形软件 jpeg-turbo JPEG 编解码(libjpeg 的 SIMD 加速实现) OpenJDK、浏览器、ImageMagick little-cms2 色彩管理(ICC profile) OpenJDK、GIMP、Ghostscript 包名对照 各平台的包名不完全一致,Linux 发行版通常把运行时库和开发头文件拆成两个包,编译其他软件时需要装带 dev / devel 的那个。 库 Homebrew Debian / Ubuntu(开发包) Arch Fedora / RHEL(开发包) harfbuzz harfbuzz libharfbuzz-dev harfbuzz harfbuzz-devel freetype freetype libfreetype-dev freetype2 freetype-devel giflib giflib libgif-dev giflib giflib-devel libpng libpng libpng-dev libpng libpng-devel jpeg-turbo jpeg-turbo libjpeg-dev libjpeg-turbo libjpeg-turbo-devel little-cms2 little-cms2 liblcms2-dev lcms2 lcms2-devel Arch 和 Homebrew 没有 dev / devel 拆分,头文件和库在同一个包里。 ...

Created 22226-09-22 · Updated 22226-09-22 · 2 min · 251 words · -

macos apps

macOS Apps 跨平台常用软件统一维护于 my apps,本文只记录 macOS 专属工具。 说明 brew — brew install <name> cask — brew install --cask <name> Essentials 跨平台工具见 my apps,以下为 macOS 专属推荐: app install notes iterm2 cask:iterm2 功能强大的 terminal stats cask:stats 任务栏系统资源监控 itsycal cask:itsycal 任务栏日历(显示周数) tunnelblick cask:tunnelblick OpenVPN GUI 客户端 Logi Options+ cask:logi-options-plus Logitech 键鼠配置工具 Ice cask:jordanbaird-ice@beta 菜单栏图标管理、隐藏与分组 KeepingYouAwake cask:keepingyouawake 菜单栏咖啡杯,防止系统休眠 Input Method app install notes 豆包输入法 — AI 语音输入,详见 豆包输入法 Squirrel(鼠须管) cask:squirrel RIME 引擎输入法,详见 Squirrel(鼠须管) brew install --cask doubao 安装的是豆包 AI 聊天客户端,不是输入法。 ...

Created 5056-05-05 · Updated 13136-09-13 · 2 min · 236 words · -

UTM: Virtual Machines on macOS

简介 UTM 是 macOS / iOS 上的开源虚拟机,底层是 QEMU,也可以改用 Apple Virtualization Framework。 和 Parallels Desktop、VMware Fusion Pro 的对比见 macOS Virtual Machines。同架构 Linux 应优先开 Apple Virtualization,不要用 QEMU 仿真。 Gallery 里开 Arch Linux ARM browse UTM gallery > archlinux arm > open in UTM 默认用户 / 密码:root / root 共享目录(9p) 在 Linux 客户机里: sudo mkdir -p /mnt/share sudo mount -t 9p -o trans=virtio hostshare /mnt/share Use Apple Virtualization 用 Apple 自家的虚拟化框架(Apple Virtualization Framework)跑虚拟机,而不是 QEMU 仿真(emulation): ...

Created 22226-02-22 · Updated 31316-08-31 · 1 min · 142 words · -

macOS Virtual Machines: Parallels Desktop, Fusion Pro, UTM

背景 Apple Silicon(M 系列)之后,Mac 上不能再用 Boot Camp 装 Windows。日常要跑另一套操作系统,只能走虚拟机。 选型时先分清两件事: 宿主机和客户机是不是同一套 CPU 架构。同架构(Apple Silicon 上跑 ARM Linux / Windows 11 ARM)走硬件虚拟化,接近本机速度。跨架构(在 M 系列上跑完整的 x86 Windows / Linux)要做指令仿真,会慢很多。 要的是「每天用 Windows 应用」,还是「偶尔起一台 Linux / 旧系统 / 别的架构」。 下面三款是目前 macOS 上最常见的选择。软件列表里的入口见 macos apps。UTM 的具体操作(Gallery、9p 共享目录、Apple Virtualization、从 kernel 启动)见 UTM。QEMU 本身见 QEMU。 怎么选 每天要在 Mac 上用 Windows 应用(Office 插件、Visio、部分工程软件):Parallels Desktop。它是目前 Microsoft 授权在 Apple Silicon 上跑 Windows 11 Pro / Enterprise 的方案,Coherence、剪贴板、文件夹共享、显卡加速都更完整。 不想付钱、能接受自己下 ISO / 配网卡、偶尔用 Windows 或经常跑 Linux:VMware Fusion Pro。2025 年 3 月起对个人、教育和商业用途都免费。 要开源、要仿真 x86 / 旧系统 / RISC-V 等、或只是起一台 ARM Linux:UTM。 三款都不包含 Windows 许可证。Windows 要单独激活。 ...

Created 31316-08-31 · Updated 31316-08-31 · 3 min · 548 words · -

Squirrel(鼠须管)

Squirrel(鼠须管) macOS 上基于 RIME 输入法引擎的输入法,可自定义方案。参见 macOS Apps 中的输入法列表。 命名由来 RIME 项目给各平台前端起的名字都是传统毛笔的名称,与输入法功能本身无关:Windows 端叫小狼毫(Weasel,狼毫笔),macOS 端叫鼠须管(Squirrel,鼠须笔,相传王羲之用它写《兰亭序》)。“鼠须"直译是"老鼠胡须”,英文若直译成 Rat 观感不好,于是取了同属啮齿类、形象更讨喜的 Squirrel(松鼠)作为意译名,因此 Squirrel 与"鼠须管"并非字面对应,而是保留"啮齿类"这个关联的近似翻译。 项目:rime.im 安装:brew install --cask squirrel Ansible: cd homelab/workstation # w10n-config 仓库 task install-squirrel Squirrel 本身只带基础拼音方案,不包含五笔,需另外安装 schema: bash -c "$(curl -fsSL https://git.io/rime-install)" -- rime-wubi --using-mirror 或手动下载 rime-wubi(如 rime-wubi86-jidian)方案文件放入 ~/Library/Rime/,在 default.yaml 的 schema_list 中加入五笔 schema,再右键菜单栏图标「重新部署」。 装好后需在系统设置中手动完成: 键盘 → 输入法:添加「简体中文」→「鼠须管」 安装五笔 schema(见上) 点击菜单栏图标或自定义快捷键切换到五笔方案

Created 10106-07-10 · Updated 10106-07-10 · 1 min · 58 words · -

mac os terminal, Creating New Users

‘mac os terminal, Creating New Users’ http://www.maclife.com/article/columns/terminal_101_creating_new_users Every Monday, we’ll show you how to do something new and simple with Apple’s built-in command line application. You don’t need any fancy software, or a knowledge of coding to do any of these. All you need is a keyboard to type ’em out! Adding users through the GUI in OS X is an easy process, but sometimes, you may just need to quickly create an SSH user, or a user that is allowed to SFTP or FTP into the system. You can easily create a stripped-down account in OS X using the dscl command, and we’ll show you how in this week’s Terminal 101. Continue reading to learn all about creating new users through the Terminal. ...

Created 6066-02-06 · Updated 6066-02-06 · 2 min · 383 words · -