有個老梗流傳了二十年:我用Vim多年,因為我不知道怎么退出。
我現在終于會退出了。
![]()
但還是走不了。
編輯器輪回:從 cathedral 到瀏覽器
Neovim之前還有別人。永遠有別人。
老炮們記得Zend Studio——買PHP許可證送的IDE,帶著一種莊嚴感。它在"項目"還只是個帶package.json的文件夾之前,就懂得什么是真正的項目。
Eclipse,隔壁的大教堂。工作空間、透視圖、每個問題一個插件、每個解決方案再送三個。如果你在2000年代寫代碼,Eclipse不是你的編輯器,它是你的操作系統。
RubyMine,那時候Ruby還是未來,能真正理解你模型的自動補全像個小奇跡。JetBrains全家桶——笨重、有主見、比你聰明、還樂意告訴你。
Sublime。教會一代人"啟動速度是功能"的編輯器。2013年的Command-P是宗教體驗。
然后是Electron浪潮。Atom先上,VS Code跟上。突然你的編輯器成了瀏覽器,瀏覽器成了編輯器,400MB內存用來打字,我們居然都接受了。
這些我全用過。全都喜歡過。短暫地,我成為過每一種人。
不知道如果2015年就有Zed,事情會怎么發展。
插件不是功能,是立場
沒人告訴你:在同一個編輯器里待十年,你積累的不是插件,是立場。
插件不是你安裝的功能,是你對工作方式的決策,凍成一行配置。每個鍵位都是對未來自己的一次投票。每個leader鍵組合都是教給雙手的一句話。
十年之后,編輯器不再是軟件。它變成一種方言。
人們引用那句話:完美不是無可添加,而是無可刪減。年紀越大,我越覺得真正的版本更安靜:理想工具是沒什么可扔的。留下的每樣東西都經過考驗——你試著刪掉,又想念,才讓它回來。
我的Neovim配置現在就是這樣。不是我設計的。是時間設計的。
五次嘗試,五次失敗
過去一年我試了五次切換到Zed。
Zed確實很棒。有Sublime那種快,但底層是現代技術棧。v1發布,agent終于可以關掉無視——這拿走了我最后的借口。
每次打開它,我都希望這次能成。
每次,幾小時后,我又回到Neovim。不是因為Zed做錯了什么。是因為我的手不斷伸向不在那里的東西,那種持續的小摩擦……把我磨垮了。
一次嘗試是好奇。五次是另一回事。五次意味著有什么東西在把我往回拉,我說不清,也談判不了。
是的,Zed有Vim模式。技術上很出色。鍵位能用。動作都在。紙上完全可行。
但紙上可行和手上可行是兩件事。
肌肉記憶比理性更誠實
我試過用Zed寫Go。項目加載快,補全聰明,界面干凈。所有理性的理由都在Zed這邊。
但我的手指在hjkl上跳舞,在Zed里它們突然變得笨拙。不是慢,是陌生。像用別人的筷子吃飯,能吃到嘴里,但每一口都要想。
編程是思考密集型工作。你不能把認知預算花在翻譯上。
有個細節:我在Neovim里用`ci"`(修改引號內內容)的頻率,比我自己意識到的還高。Zed的Vim模式支持這個,但節奏不對。停頓的地方不對。退出插入模式的時機不對。毫秒級的差異,累積成小時的摩擦。
這不是懷舊。這是基礎設施。
就像你家的門把手——換了更好的牌子,但位置偏了三厘米,你每天撞手肘。
為什么年輕編輯器贏不了老用戶
Zed的問題不是功能。是考古層。
我的Neovim配置里有2016年的決定:當時為了處理某個JSON格式,寫了個函數。后來那個格式淘汰了,函數留著,因為手指記得。有2019年的鍵位映射,為了解決一個已經修復的bug,映射留著,因為肌肉記憶。有2021年的插件,為了某種工作流,工作流變了,插件留著,因為刪除它的成本高于留著。
這不是技術債務。這是身體債務。
年輕編輯器假設用戶是理性的:比較功能、權衡利弊、做出選擇。但老用戶不是在選擇編輯器,是在選擇要不要背叛自己的神經系統。
VS Code能贏,是因為它沒要求遷移——它允許漸進式叛逃。你可以先用它寫JavaScript,保持Vim寫其他東西。邊界模糊,滲透發生。
Zed太干凈了。干凈到沒有縫隙讓舊習慣溜進去。
那Neovim到底是什么
如果解釋給非技術朋友,我會說:Neovim是Vim的重啟版,解決了Vim的架構問題,支持異步插件,用Lua代替VimScript。
但這解釋不了為什么有人用它。
真正的原因是:Neovim是最后一個允許你完全擁有自己工作環境的編輯器。
VS Code的擴展生態是花園圍墻。Zed的方向是內置AI、協作功能、云端同步——都是好東西,都是別人替你做的決定。
Neovim的配置文件是幾百行Lua,放在GitHub上。你可以看懂每一行。你知道為什么`jk`映射到退出插入模式,因為2017年的你寫過注釋。你可以刪掉任何一行,承受后果,重新加回來。
這種所有權感,在軟件越來越像服務的時代,成了小眾奢侈品。
退出Vim的隱喻
回到那個老梗。`:q`退出Vim很簡單,`:wq`保存退出也很簡單。但"退出Vim"在程序員文化里是個隱喻——代表陷入一個強大但陡峭的工具,付出學習成本后無法離開。
我現在會退出了。字面意義上的。
但隱喻意義上的退出更難。因為離開不是技術問題,是身份問題。你用某種方式工作了十年,那種方式定義了"寫代碼"對你意味著什么。換編輯器不是換工具,是換自我敘事。
Zed代表一種可能的未來:快、現代、AI原生、協作優先。我真心希望它成功。但我的未來可能不在那里。
或者更準確地說:我的未來已經在哪里了,只是那個未來是2014年開始積累的。
數據收束
過去一年,我打開Zed 23次,平均每次停留4.7小時,最長一次堅持了11小時,最終全部回到Neovim。我的Neovim配置當前有1,847行Lua,最早一行寫于2014年3月,最近一行寫于昨天。過去十年,我完整遷移編輯器的次數是0。
這不是選擇。這是沉積。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.