Am rezistat patru ani pe VS Code, convins că ecosistemul de extensii și confortul out-of-the-box bat orice fișier de configurare scris de mână. Acum două luni am zis stop și am revenit pe Neovim. Dacă te bate gândul să faci mișcarea asta, merită să știi exact ce câștigi, dar mai ales ce pierzi.
Picătura care a umplut paharul
Totul a pornit de la un monorepo în TypeScript de vreo 140k linii de cod la clientul curent. VS Code pur și simplu gâfâia. Cu cinci extensii active, TypeScript language server și ESLint pornite, editorul îmi mânca lejer 2.8 GB de RAM doar pentru el. Pe un MacBook Pro M1 nu sună a dezastru, dar se simțea o latență insidioasă la tastare. Câteva zeci de milisecunde întârziere la autosuggestion par nimic, până când tastezi 8 ore pe zi și devine frustrant.
Am pățit de câteva ori să-mi înghețe complet fereastra în timp ce făceam un refactoring mai serios într-un fișier de 3.000 de linii. Acela a fost momentul în care am redeschis terminalul.
Ce am câștigat imediat
Primul șoc a fost viteza brută. Neovim configurat cu Lazy.nvim, Treesitter și Telescope pornește în 32 de milisecunde. Consumă în jur de 95 MB de RAM cu aceleași fișiere deschise. Când tastez, literele apar pe ecran fără urmă de buffering, indiferent cât de mare e proiectul.
Al doilea câștig e modularitatea mentală. Cu pluginul Harpoon nu mai am 40 de tab-uri deschise sus pe care le ignor cu desăvârșire. Lucrez cu 3-4 fișiere active între care sar instant prin scurtături dedicate. Focusul pe cod e complet diferit când scapi de tot zgomotul vizual din barele laterale.
Ce am pierdut (trade-off-ul sincer)
Să nu ne mințim: trecerea înapoi nu a fost doar lapte și miere. Am pierdut lucruri care în VS Code pur și simplu mergeau fără bătaie de cap.
În primul rând, debugging-ul. În VS Code apeși F5, ai pus breakpoint cu un click, inspectezi variabilele în sidebar și treaba e gata. În Neovim, configurarea nvim-dap pentru Node.js și Rust mi-a mâncat un weekend întreg. Chiar și acum funcționează, dar experiența vizuală e rudimentară comparat cu un GUI dedicat.
În al doilea rând, lucrul în echipă. Când trebuie să fac pair programming cu un coleg junior, VS Code Live Share e imbatabil. Pe Neovim soluțiile de pairing există (tmux, tmate), dar impun ca celălalt să fie confortabil în terminal, ceea ce rareori se întâmplă.
Și mai e ceva: capcana configurării infinite. În prima săptămână am pierdut cel puțin 10 ore modificând culori de statusline, mapări de taste și configurând foldere în Lua în loc să scriu cod pentru client.
Neovim câștigă clar la viteză pură, ergonomie și consum de resurse dacă stăpânești deja mișcările de Vim. În schimb, dacă te bazezi masiv pe debugger vizual, rezolvare de conflicte de Git printr-un click și colaborare live, VS Code e net superior și mai iertător.
Voi cum stați pe zona asta: preferați confortul oferit de un editor gata pregătit sau vă mâncați weekendurile bibilind config-uri în terminal?