<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Matthew G. Son</title>
    <subtitle>Assistant Professor of Finance at the University of South Florida. Machine learning and AI in finance, measurement, financial innovation, options and market microstructure.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://matthewgson.github.io/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://matthewgson.github.io"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-08-13T00:00:00+00:00</updated>
    <id>https://matthewgson.github.io/atom.xml</id>
    <entry xml:lang="en">
        <title>Can&#39;t exit Vim</title>
        <published>2026-08-13T00:00:00+00:00</published>
        <updated>2026-08-13T00:00:00+00:00</updated>
        
        <author>
          <name>Matthew G. Son</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://matthewgson.github.io/blog/just-plain-dont-know-how-to-exit-vim/"/>
        <id>https://matthewgson.github.io/blog/just-plain-dont-know-how-to-exit-vim/</id>
        
        <content type="html" xml:base="https://matthewgson.github.io/blog/just-plain-dont-know-how-to-exit-vim/">&lt;p&gt;I started programming in Python in 2017, during my Ph.D., and had a lot of fun
learning it.&lt;/p&gt;
&lt;p&gt;Then I hit a wall: pandas was very slow on large datasets, and neither Spark
nor Dask helped. What did help was
&lt;a rel=&quot;external&quot; href=&quot;https://rdatatable.gitlab.io/data.table/&quot;&gt;data.table&lt;/a&gt; in R. Once I was there,
the number of econometrics and statistics packages meant I never really left,
and my research shifted to R.&lt;/p&gt;
&lt;p&gt;Two packages kept me. &lt;a rel=&quot;external&quot; href=&quot;https://www.tidyverse.org/&quot;&gt;tidyverse&lt;/a&gt; was more
intuitive, faster, and easier to write. &lt;a rel=&quot;external&quot; href=&quot;https://lrberge.github.io/fixest/&quot;&gt;fixest&lt;/a&gt;
is still one of the fastest things going for high-dimensional fixed effects
regressions.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;After moving to R, Python has since caught up. &lt;a rel=&quot;external&quot; href=&quot;https://duckdb.org/&quot;&gt;DuckDB&lt;/a&gt; and
&lt;a rel=&quot;external&quot; href=&quot;https://pola.rs/&quot;&gt;Polars&lt;/a&gt; opened up new big-data workflows, and there is now
&lt;a rel=&quot;external&quot; href=&quot;https://py-econometrics.github.io/pyfixest/&quot;&gt;pyfixest&lt;/a&gt;, a Python port of
fixest.&lt;/p&gt;
&lt;p&gt;Now I use Python mostly, but still feel R is simpler and better for human-reading and writing of code.&lt;/p&gt;
&lt;h2 id=&quot;working-remotely&quot;&gt;Working remotely&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Meanwhile VS Code felt clunky and I missed a lot of RStudio’s features,
though it clearly did some things RStudio couldn’t.&lt;/p&gt;
&lt;p&gt;Positron’s ssh was experimental at the time, so I went back and forth: Positron
locally, VS Code for the cluster.&lt;/p&gt;
&lt;h2 id=&quot;the-move&quot;&gt;The move&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;The one thing I wish I had found sooner is
&lt;a rel=&quot;external&quot; href=&quot;https://github.com/R-nvim/R.nvim&quot;&gt;R.nvim&lt;/a&gt;. It talks to R through tmux or
Neovim’s built-in terminal, with an object browser, completion from your R
environment, shortcuts for &lt;code&gt;&amp;lt;-&lt;/code&gt; and &lt;code&gt;|&amp;gt;&lt;/code&gt;, and Quarto and R Markdown support.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;And as the meme goes, I don’t think I can exit.&lt;/p&gt;
</content>
        
    </entry>
</feed>
