# Summary 克服其反直觉的操作方式需要的不只是耐心,更是一种主动探求系统原理、驯服工具而非被工具驯服的工程师本能。这种通过投资学习时间来换取长期效率提升的决策,本身就体现了一种高度的职业素养和前瞻性。 说了那么多,那是不是证明自己的技术潜力就非要学习去用vim不可呢?当然不是,我就没折腾过vim,我对vim的使用也很初级。 其核心逻辑在于,vim的掌握过程仅仅是一种具体表现形式。你可以不去折腾vim,但是你总得折腾点什么东西。这种“折腾”的本质,是对现有工作流的不满足,是一种自发性的技术驱动力。无论是深入钻研某个IDE的强大调试功能、定制自动化脚本工具链、精进容器化部署的每一个细节,还是像有些人那样彻底搞懂Git的内部原理,其内在价值与精通vim是完全相通的。 它代表了你愿意(并且能够)越过“够用”的门槛,去追求一种更深层次的掌控力与理解,这种持续精进的态度本身,才是技术潜力最真实的写照。 我们都需要借助一些工具才能更加了解自己,例如我们需要一个镜子来知道自己的长相,需要一个秤来测量自己的体重。那么我们用什么工具来测试自己作为程序员的潜力呢?vim就是这样一个工具。 程序员所谓的潜力,主要就是自驱力、学习能力、总结能力、耐心,等等,这些素质都可以在vim学习过程中提现出来。 在我看来,如果你愿意学vim、并且学得进去,应该就能超过$90\%$的同龄程序员。 --- 标题: 使用vim是技术力的象征吗? 使用vim是技术力的象征吗?不是技术力的象征,是技术潜力的象征。 我认识的用vim用得好的没一个菜的。 这并非因为vim本身有什么神奇魔力,而是因为掌握它的过程恰好映射了一个优秀程序员的成长轨迹。一个新手可能会笨拙地按 ```Java i ``` 进入插入模式,然后用方向键一个个移动光标来修改代码,而一个熟练者则会将编辑视为一种“语言”:他们看到 ```Java functionName() ``` 这个函数名需要更改,不会移动光标到行首,而是直接键入 ```Java ciw ``` (change inner word),瞬间删除整个词并进入插入模式,输入新名字后敲ESC返回普通模式,整个过程一气呵成,手指从未离开键盘主位。 这种将“更改一个单词”抽象为一个原子操作的能力,与编程中将复杂任务分解为函数和模块的思维如出一辙。它的陡峭学习曲线迫使使用者深入理解文本操作的抽象逻辑,将移动( ```Java w ``` 跳到下一个词头)、操作( ```Java d ``` 删除、 ```Java c ``` 更改)与文本对象( ```Java iw ``` inside word、 ```Java i" ``` inside quotes)组合成强大指令,这种构建“编辑语法”的思维模式,与将复杂问题分解为算法流程的编程思想完全同构。 克服其反直觉的操作方式需要的不只是耐心,更是一种主动探求系统原理、驯服工具而非被工具驯服的工程师本能。这种通过投资学习时间来换取长期效率提升的决策,本身就体现了一种高度的职业素养和前瞻性。 说了那么多,那是不是证明自己的技术潜力就非要学习去用vim不可呢?当然不是,我就没折腾过vim,我对vim的使用也很初级。 其核心逻辑在于,vim的掌握过程仅仅是一种具体表现形式。你可以不去折腾vim,但是你总得折腾点什么东西。这种“折腾”的本质,是对现有工作流的不满足,是一种自发性的技术驱动力。无论是深入钻研某个IDE的强大调试功能、定制自动化脚本工具链、精进容器化部署的每一个细节,还是像有些人那样彻底搞懂Git的内部原理,其内在价值与精通vim是完全相通的。 它代表了你愿意(并且能够)越过“够用”的门槛,去追求一种更深层次的掌控力与理解,这种持续精进的态度本身,才是技术潜力最真实的写照。 我们都需要借助一些工具才能更加了解自己,例如我们需要一个镜子来知道自己的长相,需要一个秤来测量自己的体重。那么我们用什么工具来测试自己作为程序员的潜力呢?vim就是这样一个工具。 [[程序员]]所谓的潜力,主要就是自驱力、学习能力、总结能力、耐心,等等,这些素质都可以在vim学习过程中提现出来。 在我看来,如果你愿意学vim、并且学得进去,应该就能超过$90\%$的同龄程序员。 # Cues # Notes