Can't exit Vim
I started programming in Python in 2017, during my Ph.D., and had a lot of fun learning it.
Then I hit a wall: pandas was very slow on large datasets, and neither Spark nor Dask helped. What did help was data.table in R. Once I was there, the number of econometrics and statistics packages meant I never really left, and my research shifted to R.
Two packages kept me. tidyverse was more intuitive, faster, and easier to write. fixest is still one of the fastest things going for high-dimensional fixed effects regressions.
For an editor, RStudio was the best overall setup for me. It had most of the tools I needed and gave me great introduction to nice workflows and tools that I did not know in prior. I had tried VS Code, JupyterLab, PyCharm, and Spyder along the way. VS code was great as the text editing tool itself, but I missed RStudio features that I couldn’t fully switch. Now the RStudio team (now Posit) has made the CodeOSS fork called Positron IDE, which is a great IDE tool for exact person like me. Though I moved towards Vim since, but I introduce them to my students.
After moving to R, Python has since caught up. DuckDB and Polars opened up new big-data workflows, and there is now pyfixest, a Python port of fixest.
Now I use Python mostly, but still feel R is simpler and better for human-reading and writing of code.
Working remotely
When my work moved to an HPC cluster, I started using VS Code over SSH. Sometimes it went smoothly. Often it took too much time to set up and run, which was frustrating.
Vim was suggested to me early, for exactly this remote situation. It looked fascinating but also scared me for its esoteric motions and keybindings. And it took a long time before I did anything about it.
Meanwhile VS Code felt clunky and I missed a lot of RStudio’s features, though it clearly did some things RStudio couldn’t.
Positron’s ssh was experimental at the time, so I went back and forth: Positron locally, VS Code for the cluster.
The move
Eventually VS Code stopped working with my institution’s setup altogether. The cluster’s OS is too outdated to run it, and containerizing only added complications.
That’s when I decided to learn Neovim and tmux, which need no IDE setup at all. I never knew a terminal could become an IDE.
The one thing I wish I had found sooner is
R.nvim. It talks to R through tmux or
Neovim’s built-in terminal, with an object browser, completion from your R
environment, shortcuts for <- and |>, and Quarto and R Markdown support.
These days I don’t edit as much as I used to, since agentic AI tools do a lot of it, but text editing is still a must and Neovim is home ground now. It was a bit hard to learn and completely worthwhile: minimal, lightweight, snappy, and the motions are a joy.
And as the meme goes, I don’t think I can exit.