Vim 从入门到理解:一个编辑器为什么能让程序员着迷三十年

你一定听过这个段子:怎么退出 Vim? 这是一个在程序员圈子里流传了无数年的经典笑话。Stack Overflow 上关于"如何退出 Vim"的问题浏览量超过 260 万次。但笑归笑,如果你真的花时间学会了 Vim,你会发现一个惊人的事实——它根本不是什么古董,而是一把被你错过多年的利器。 Vim 到底是什么? Vim,全称 Vi IMproved,是 1991 年由 Bram Moolenaar 在经典 Unix 编辑器 vi 的基础上改进而来的文本编辑器。而 vi 的历史更早,可以追溯到 1976 年。 你可能会问:都快 2026 年了,为什么还要学一个比很多人年纪都大的编辑器? 答案很简单:因为它的设计理念至今无人超越。 想象一下,你正在写代码,右手在键盘和鼠标之间来回切换几百次。选中、删除、移动光标、再选中、再删除……一天下来手腕隐隐作痛。而一个熟练的 Vim 用户,双手始终停留在键盘主行(asdf jkl;),像弹钢琴一样流畅地编辑文本,鼠标积了一层灰。 这就是 Vim 的魔力。 最重要的一件事:模式 打开 VS Code、记事本、Word,你打开就能打字。这是大多数人理解的"编辑器"。 Vim 不一样。 它把编辑文本这件事拆分成了不同的"模式"——就像手机有不同的屏幕页面一样,每种模式下按键的功能完全不同。 普通模式(Normal Mode) 这是 Vim 启动后你默认所处的模式。在这个模式下,你按下的字母键不会输入文字,而是执行命令。 h 向左移动光标 j 向下移动光标 k 向上移动光标 l 向右移动光标 没错,Vim 用 hjkl 来移动光标,而不是方向键。为什么?因为 hjkl 就在右手的主行位置,你的手指不需要移动就能导航。想象 j 是一支朝下的箭头,k 朝上,h 在最左边所以向左,l 在最右边所以向右。 在普通模式下你还可以做很多事情:删除、复制、搜索、替换……你大概会花 80% 的时间待在这个模式里。 ...

March 29, 2026 · 3 min · 王云卿

Claude Code 完全指南:从入门到精通

想象一下,如果你有一个超级聪明的编程搭档——它不仅能帮你写代码,还能读懂整个项目结构,自动运行命令,甚至帮你审查代码。这不是科幻小说,而是 Claude Code 带来的现实。 Claude Code 是 Anthropic 推出的命令行 AI 助手,它让 Claude 从聊天框里"走出来",真正融入你的开发工作流。 01. 什么是 AI 编码助手? 在深入 Claude Code 之前,我们需要先理解 AI 编码助手的工作原理。这不仅仅是一个能写代码的工具,而是一个使用语言模型来处理复杂编程任务的精密系统。 编码助手的工作流程 当你给编码助手一个任务,比如根据错误信息修复 bug 时,它会按照类似人类开发者的方式来处理问题: 收集上下文 - 理解错误指的是什么、代码库的哪个部分受影响、哪些文件是相关的 制定计划 - 决定如何解决问题,比如修改代码并运行测试来验证修复 执行操作 - 实际实现解决方案,更新文件并运行命令 这里的关键洞察是:第一步和最后一步需要助手与外部世界交互——读取文件、获取文档、运行命令或编辑代码。 工具使用的挑战 有趣的地方来了。语言模型本身只能处理文本并返回文本——它们实际上无法读取文件或运行命令。如果你让一个独立的语言模型读取文件,它会告诉你它没有这个能力。 那么编码助手是如何解决这个问题的?它们使用了一个聪明的系统,叫做"工具使用"(tool use)。 工具使用的工作原理 当你向编码助手发送请求时,它会自动在你的消息中添加指令,教语言模型如何请求操作。例如,它可能会添加类似这样的文本:“如果你想读取文件,请回复 ‘ReadFile: 文件名’” 完整的流程是这样的: 你问:“main.go 文件里写了什么代码?” 编码助手在你的请求中添加工具指令 语言模型回复:“ReadFile: main.go” 编码助手读取实际文件并将内容发送回模型 语言模型基于文件内容提供最终答案 这个系统让语言模型能够有效地"读取文件"、“编写代码"和"运行命令”,即使它们实际上只是生成精心格式的文本响应。 为什么 Claude 的工具使用很重要 并非所有语言模型在使用工具方面都同样出色。Claude 系列模型(Opus、Sonnet 和 Haiku)在理解工具的作用以及有效使用工具来完成复杂任务方面特别强。 这种强大的工具使用能力为 Claude Code 带来了几个关键优势: ...

March 11, 2026 · 7 min · 王云卿

Python 和 C++ 开发者,一个 Miniforge 足矣

Python 和 C++ 开发者,一个 Miniforge 足矣 打开 Reddit 的 Python 版块,每隔几天就会有人问:“我应该用 Poetry 还是 pipenv?"、“uv 真的那么快吗?"、“conda 会被淘汰吗?” 点开评论区,永远在吵。有人推荐 Poetry,有人吹 uv,有人说 conda 才是王道。 作为一个同时用 Python 和 C++ 的开发者,你可能更纠结——Python 的 venv 管不了 C++ 库,conda 又总是被说"慢”。 其实,你可能只需要一个工具:Miniforge。 先说结论 如果你是: - Python 开发者(Web/脚本/通用) - C++ 开发者(需要各种库) - 数据科学/机器学习从业者 - 交叉编译/多平台开发者 Miniforge = 一个工具搞定全部 为什么不是别的? 让我们看看各种工具的痛点: venv / virtualenv python -m venv myenv source myenv/bin/activate pip install numpy 问题来了: ❌ 只管 Python 包,C++ 库?装不了 ❌ Python 版本切换?需要 pyenv ❌ 依赖锁定?需要额外工具 三个工具才能干一件事。 ...

March 6, 2026 · 3 min · 王云卿