Keep Exploring

LazyVim

LazyVim 是一套预先配好的 Neovim 配置,定位和 Emacs 里的 Doom 差不多:文件查找、代码补全、LSP、Git 这些都已配好,装完就能直接用,不用从零开始挑插件、写配置。 安装 先装好 Neovim(0.11.2 或以上)和几个依赖,再克隆官方的 starter 模板: 1 2 3 4 5 6 brew install neovim git lazygit ripgrep fd mv ~/.config/nvim{,.bak} # 备份已有配置,没有可跳过 git clone https://github.com/LazyVim/starter ~/.config/nvim rm -rf ~/.config/nvim/.git nvim 第一次启动会自动下载所有插件,等它装完重启一次即可。终端字体要换成 Nerd Font,不然图标会显示成方块。 按键写法 LazyVim 沿用 Vim 的按键写法: 写法 含义 <leader> 空格键 <C-s> Ctrl+s <S-h> Shift+h,也就是大写的 H <leader>ff 依次按空格、f、f,每个键按完就松开 按下空格后稍等一下,会弹出 which-key 菜单,列出接下来可以按哪些键。键位大多按英文首字母组织,比如 f 是 file,b 是 buffer,c 是 code,g 是 git。 ...

2026年9月30日 · 3 分钟 · Palemoky

Emacs

Emacs 的功能大致可以分成这几块: 基础操作:按键写法、缓冲区与窗口、帮助系统,是使用其他所有功能的前提 Org mode(内置):用纯文本写大纲,并在此基础上发展出一整套工具 待办与日程:用 TODO、优先级、标签和日期管理任务,Agenda 能把多个文件里的任务汇总到一处查看 Capture:随时把想法或任务记到指定文件,不打断手头的工作 Babel:在笔记中嵌入并运行代码块,类似 Jupyter Notebook,但支持几乎所有编程语言 org-roam(第三方包):用双向链接组织笔记,类似 Obsidian Magit(第三方包):Git 客户端,被公认为 Emacs 的杀手级应用,终端里的 Lazygit 与它思路相近 TRAMP(内置):像编辑本地文件一样,直接编辑远程服务器或容器里的文件 Dired(内置):文件管理器,可以先标记多个文件,再批量重命名、移动或删除,终端里的 yazi 与它类似 另外,Doom Emacs 并不是某项功能,而是一套预先配好的 Emacs 发行版(同类的还有 Spacemacs)。它集成了上面这些包,并默认启用 Vim 风格的按键,适合不想从零开始折腾配置的人。用过 LazyVim 的话会很容易上手:两者都以空格作为 leader 键,按下后会弹出菜单,提示接下来可以按哪些键。 基础操作 按键写法 Emacs 文档里的按键用缩写表示,对应关系如下: Emacs 写法 Windows / Linux macOS C-x Ctrl+x Ctrl+x M-x Alt+x Option+x S- Shift Shift RET Enter Return SPC 空格 空格 C-x C-s 表示先按 Ctrl+x,松开后再按 Ctrl+s。macOS 终端里要让 Option 充当 Meta,需要打开终端的相应设置(Ghostty 中是 macos-option-as-alt = true,见常用工具)。 ...

2026年9月29日 · 8 分钟 · Palemoky

常用工具

Ghostty Ghostty 是 Mitchell Hashimoto(HashiCorp 创始人)用 Zig 编写的开源终端模拟器。它通过 GPU 加速渲染,在 macOS 和 Linux 上使用原生 UI,开箱即用,几乎不需要配置。 以下快捷键均为 macOS 下的默认值(基于 1.3),⌘ 在 Linux 下通常对应 Ctrl+Shift。 分屏 不用 tmux,也能在一个窗口里并排开多个终端。 快捷键 作用 ⌘D 向右分屏 ⌘⇧D 向下分屏 ⌘[ / ⌘] 切换到上一个 / 下一个分屏 ⌘⌥ + 方向键 按方向切换分屏 ⌘⌃ + 方向键 调整分屏大小 ⌘⌃= 均分所有分屏 ⌘⇧↩ 放大 / 还原当前分屏,临时专注一个 ⌘W 关闭当前分屏(或标签页) 标签页与窗口 快捷键 作用 ⌘T 新建标签页 ⌘1 ~ ⌘8 跳到第 N 个标签页 ⌘9 跳到最后一个标签页 ⌘⇧[ / ⌘⇧] 上一个 / 下一个标签页 ⌘Z / ⌘⇧T 撤销关闭,误关的标签页和分屏能找回 ⌘↩ 切换全屏 输出与滚动 快捷键 作用 ⌘↑ / ⌘↓ 跳到上一条 / 下一条命令的提示符,快速翻看长输出 ⌘K 清屏(连同滚动历史一起清掉) ⌘F 在滚动历史中搜索,⌘G / ⌘⇧G 切换匹配项 ⌘E 用选中的文字直接搜索 ⌘Home / ⌘End 滚动到顶部 / 底部 ⌘⇧J 把当前屏幕内容存成文件,并把路径粘贴到命令行 跳转提示符依赖 shell integration。bash、zsh、fish 下 Ghostty 会自动注入,通常无需额外设置。 ...

2026年9月26日 · 2 分钟 · Palemoky

那些糟糕的翻译

好的翻译讲究信、达、雅,让读者顾名思义、一目了然;糟糕的翻译则南辕北辙,令人不知所云。技术领域尤其如此——一个生硬的译名,往往比原文还难懂。 糟糕的翻译 抬头(title):发票上的 title 指的是接收方名称。而"抬头"在汉语里首先让人想到"抬起头"这个动作,与"接收方"毫无关联,初次接触的人往往一头雾水。 缺省值(default):译者想表达的是"缺少、省略时所取的值",但"缺省"二字生僻拗口,大多数人很难立刻反应过来。相比之下,默认值要自然、直观得多。 鲁棒性(robust):“鲁棒"是纯粹的音译,既无字面意义,也无联想空间,堪称技术翻译中的反面典型。健壮性才是更贴切的译法——既传达了"稳健、不易崩溃"的含义,又符合中文的构词习惯。 宏(macro):英文中 macro 与 micro 相对,而"宏"字在中文里多与"宏大、宏观"相关联,无法准确传达它的技术含义。更棘手的是,“宏"在不同场景下的行为差异很大,一个模糊的译名只会加重理解负担: 场景 行为 Vim / Office 操作录制与回放 C 语言 编译期的文本替换 Rust 语法层面的代码展开 内存(memory):memory 的核心特性是易失性——断电即清空,与硬盘的持久存储截然不同。但"内存"只强调了"机器内部的存储”,完全遮蔽了这一关键属性。台湾译作记忆体,更能体现数据的临时性。 接口(interface):interface 的字面意思是"交界面”,描述的是两个系统之间的交互边界。“接口"一词很容易与 API 混淆,台湾译作介面则更为贴切:既能指视觉层面的用户界面,也能指编程中的抽象协议,语义更准确。 句柄(handle):原意是"把手”,引申为操作资源的凭证。“句柄"二字字面晦涩,几乎无法从中读出任何含义。若译作资源凭证,理解成本会大幅降低。 套接字(socket):socket 原意是"插座”,这个比喻很形象,“套接字"却晦涩难懂。若译作插座,则更直观易懂。 哈希(hash):这是纯音译。“散列"能说明它把数据打散映射的特点,比"哈希"更好。 信号量(semaphore):原意是"旗语”。“信号量"读起来像是一个数值,看不出它是用来控制并发访问的。 一听(tin):音译,读者完全看不出它和罐头有关系。 一打(dozen):音译,读者完全看不出它和十二个一组的关系。 优秀的翻译 好的翻译能在音、形、义之间找到平衡,既贴近原文,又赋予新的生命力。 可口可乐(Coca-Cola):音译保留了原文的节奏感,“可口"与"可乐"又分别带来"美味"与"愉悦"的正面联想,堪称商业译名的经典之作。 赛百味(Subway):音译保留了原文的节奏感,“赛"与"百味"分别带来"竞技"与"丰富口味"的正面联想,既贴近原文,又易于记忆。 优步(Uber):音译保留了原文的节奏感,“优"与"步"分别带来"优秀"与"步伐"的正面联想,既贴近原文,又易于记忆。 宜家(IKEA):出自《诗经》“之子于归,宜其室家”。 露华浓(Revlon):出自李白"云想衣裳花想容,春风拂槛露华浓”。 奔驰(Mercedes-Benz):取 Benz 之音,同时赋予"奔腾疾驰"的动感意象,与汽车品牌的气质高度契合。 鼠标(mouse):形象的意译,抓住了它外形似老鼠、连线如尾巴的特征,即便初次接触也能瞬间理解。 云计算(cloud computing):把抽象的分布式网络比作"云”,既直观又富有诗意,远比"分布式远程计算"更易于大众传播。 产品命名 同样的道理也适用于产品命名:一个好名字能让人过目不忘,一个坏名字则需要反复解释。 优秀的产品名 淘宝:取"淘宝贝"之意,把逛街时沙里淘金的乐趣装进了名字,购物平台的定位一目了然 SpaceX:Space 直指业务,X 象征未知与探索,简短有力,充满想象空间 Tesla:致敬"交流电之父"尼古拉·特斯拉,与电动车的产品特性非常契合 Faraday Future:致敬发现电磁感应的法拉第,电动机的原理正源于此,再配上 Future,电动车与未来感兼具 字节跳动:用计算机的基本单位"字节"加上充满活力的"跳动”,既体现了科技感,又富有动感。 抖音/TikTok:主打年轻用户群体,名字足够时尚 今日头条:名字简洁明了,直接体现了产品的核心功能——提供新闻资讯。 剪映:名字简洁明了,直接体现了产品的核心功能——剪辑视频。 零一万物:0 和 1 构成数字世界的一切 地平线:地平线是视野的尽头,也是远方的起点,契合自动驾驶"看得更远"的愿景 寒武纪:寒武纪是地球生命大爆发的时期,寓意 AI 芯片将引爆智能的"寒武纪大爆发” 追光动画:动画本就是光影的艺术,“追光"又有追逐梦想之意,一语双关 商汤:取自商朝开国君主商汤,其盘铭"苟日新,日日新,又日新"正契合科技公司不断创新的追求 蚂蚁搬家:非常形象,便于传播 曹操出行:呼应俗语"说曹操,曹操到”,体现了出行的便捷 Google:源自 googol(10 的 100 次方),寓意海量信息,后来更成了"搜索"的代名词 飞书:作为 IM 产品,与"飞鸽传书"相呼应,体现了即时通讯的便捷 糟糕的产品名 有意思的是,“字节跳动"这个公司名很有科技感,旗下不少产品的名字却随意得多:它们大多取自日常物品,要靠后缀才能交代产品是做什么的。 ...

2026年7月6日 · 1 分钟 · Palemoky

Linux 现代终端工具一览

💡 核心哲学:为了极大地降低命令行的记忆碎片,建议将精力投资在正则表达式与模糊匹配(如 fzf) 的通用语法上。掌握了这一套搜索逻辑,即可借助现代工具(fd / rg / fzf)通杀涵盖文件寻址、文本过滤、进程检索、甚至历史命令在内的 90% 日常场景,真正做到“一招吃遍天”。 命令行工具速查索引 类别 传统命令 现代替代 / 推荐工具 核心用途 / 链接跳转 文件查找 find fd / fzf 文件递归寻找、模糊搜索与交互式补全 文件查看 cat / ls bat / eza / yazi 带语法高亮查看、树形彩色列表、TUI 文件管理 文本过滤 grep / diff rg / delta 高速正则匹配、高亮代码差异比对 文本处理 cut / sed / awk jq / xargs 结构化文本/JSON 解析、流编辑与参数转换 网络配置 ifconfig / netstat ip / ss / nmcli 查看 IP 路由、端口监听、终端连接 Wi-Fi 连通路由 ping / traceroute mtr / ping.pe / cip.cc 网络链路测试、GFW 封锁排查、IP 归属查询 端口探测 telnet nmap / nc 批量扫描开放端口、TCP/UDP 连通性测试与监听 文件传输 scp / ftp curl / httpie / wget / rsync API 测试、断点下载、主机间增量备份同步 系统监控 top / ps btop / procs / systemctl / sysctl 可视化系统大盘、进程检索、系统服务/内核调优 磁盘管理 du / df dust / duf / ncdu 条形图磁盘空间分析、交互式目录清理 效率辅助 man / cd tldr / zoxide / zellij 命令行示例速查、智能目录跳转、终端多路复用 安全防火墙 iptables nft / ufw 流量安全过滤、网络端口黑白名单与 Docker 防火墙避坑 Linux 文件目录结构 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 . ├── bin // binary 的缩写,普通用户的可执行命令 ├── boot // 系统启动所需文件 ├── dev // 设备文件存放目录,体现 Linux “一切皆文件”的思想 │ ├── block │ ├── disk │ ├── fd │ ├── net │ ├── null │ ├── stderr │ ├── stdin │ └── stdout ├── etc // 配置文件保存位置 │ ├── apt │ ├── ca-certificates // TLS 证书存放路径 │ ├── calendar │ ├── crontab │ ├── dhcp │ ├── php │ ├── python3 │ ├── resolv.conf // DNS 配置文件 │ ├── ssh // SSH 配置路径,修改端口号、关闭密码登陆 │ ├── systemd │ └── vim ├── home // 普通用户的主目录 ├── lib // 执行 bin 或 sbin 所依赖的文件 ├── lost+found // 当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是 /boot 分区的备份恢复目录 ├── media // 挂载媒体设备,如软盘和光盘 ├── mnt // 挂载U盘、移动硬盘等 ├── opt // 第三方安装的软件保存位置 ├── proc // 虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中,许多命令的输出都是从这个目录中获取的,如 `free`、`uptime`、`lscpu`、`top`、`ps`、`vmstat`、`netstat` 等 ├── root // root 的主目录 ├── run // 当前正在运行程序的文件 ├── sbin // 系统管理员的可执行命令 ├── snap // 用于存储 snap 包 ├── srv // 服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需的数据 ├── sys // 虚拟文件系统。和 /proc/ 目录相似,主要保存与内核相关的信息,数据同样保存于内存中 ├── tmp // 临时目录,请勿在此处存放重要数据 ├── usr // Unix Software Resource,用于存储系统软件资源 │ ├── bin // 存放系统命令,普通用户和root均可执行 │ ├── include // C/C++ 等编程语言头文件的放置目录 │ ├── lib // 应用程序调用的函数库保存位置 │ ├── local // 手动安装的软件保存位置。建议源码包软件安装在此处 │ │ ├── bin │ │ ├── etc │ │ ├── games │ │ ├── include │ │ ├── lib │ │ ├── man │ │ ├── sbin │ │ ├── share │ │ └── src │ ├── sbin // 存放根文件系统不必要的系统管理命令,如多数服务程序,仅 root 可用 │ ├── share // 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录 │ └── src // 源码包保存位置,用户下载的源码包推荐放在 /usr/local/src/,内核源码放到 /usr/src/linux/ 中 └── var // 用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等 ├── backups ├── cache ├── lib ├── local ├── lock ├── log // 系统和应用程序的日志文件放置目录 ├── mail ├── opt ├── run ├── snap ├── spool // 一些临时存放,随时会被用户所调用的数据,如 mail 和 cron ├── swap ├── tmp └── www 查找命令 find 按条件递归查找文件和目录。 ...

2026年6月25日 · 21 分钟 · Palemoky

Hello World, Again

大学时,混迹于百度贴吧,彼时流行用 PHP 脚本刷签到,我就此与编程初次相遇。照着教程,在新浪 SAE 搭起了自动签到系统,那份兴奋至今记忆犹新,只是对编程的理解仍是初窥门径。毕业后,自学 PHP 踏上了开发之路,跌跌撞撞走过了十多个年头,见证了 Web、App、大数据、容器化、VR/AR、区块链、元宇宙、自动驾驶、AI 等一波波技术浪潮的涌起与消退,也亲历了从购物、打车、外卖、共享单车、P2P网贷、O2O、新零售、社区团购、在线教育、直播、短视频、直播带货等领域的兴衰。如今我愈发相信,唯有打牢计算机的基础,才能在技术的洪流中保持清醒。于是整理了藏经阁与算法笔记,愿能以更高的视角看穿技术的本质,也能对未来的走向多一分预判。 十年前,我在出租屋里自学 PHP,用 Hexo 搭起了第一个博客,断断续续留下些基础的内容。后来,Node.js 的依赖漏洞警告时常冒出,加之繁琐的文件布局让写作摩擦不断,提笔的欲望就这样一点点消磨掉了。旧博客的内容毕竟浅薄,索性将其归档封存,这次改用 Hugo 重新搭建,化繁为简,再次出发。 如今写作平台林立,微信公众号便是其一,但平台审核、排版限制、平台稳定性隐患……种种束缚令人提不起兴致。我仍旧想在自己掌控的地方自由书写。这个日新月异的时代里,能静下心来读一本好书、写一篇深度文章,本身便是一种幸运。有读者固然欣慰,没有,就当是留给自己的记录与自娱。

2025年6月25日 · 1 分钟 · Palemoky