02 November 2020 - Mind on the Problem
The mainstream workflow paradigm doesn’t help you remain focused - it is filled with context switching and visual noise. Let’s take a closer look and see if we can find a more efficient paradigm.
Hi!
That’s been one of my mantras - focus and simplicity. Simple can be harder than complex…
— Plato
Context management
The mainstream paradigm features windows.
Windows are very practical. Until you find yourself spamming Alt
+Tab
due to their sheer number.
In that situation, you might try to put 2 windows (or more) side by side. It certainly is possible.
Except that by the time you set them the way you like, you already forgot what you wanted to do.
I find that a better option is to use screen splits: that way, you get to see exactly what you want on the screen.
Here, you can see three splits (one on the left, one of the right, and one under them):
Vim keeps track of all the previously opened splits so you can query vim to open any of them. Below, the querying menu allowing me to select one of the 15 existing splits:
Screen splits do not overlap each other. You don’t have to pick one window to work in anymore.
Instead, you have control over how many splits you want to work with, as well as their geometry on your screen.
I personally like to have either 2 or 3 splits open at the same time, but other tastes exist:
Project structure visualization
The mainstream paradigm features Project Explorers.
I’m going to quote u/romainl here:
I don’t like to have information on the screen that I don’t use: an always-on file explorer, for example, is only ever useful when you actually use it so it’s just a waste of pixels most of the time […]. All that is just noise.
I like much more using the tree utility whenever I need it (right split):
Mouse & Graphical Interface
The mainstream paradigm provides searching, scrolling and browsing links after links after links, amongst other things.
Keyboard & Muscle memory
I prefer using my keyboard and build muscle memory because I feel more proactive, rather than merely guided by the GUI. In the example below, I query the same files as above instead of browsing:
“Focus, and simplicity”
I follow three basic guidelines in order to maximize my focus on problem-solving:
- Remove disruptive elements
- Remove noise
- Make what I use as easily accessible as possible
Hence my “Focus, and simplicity” paradigm:
Every action should be instantly accessible, from the current context, from my fingers.
Graphical elements should appear on the screen exclusively when I need them.
Ideally, this would mean full functionality using:
- one window - the one I’m writing source code from.
- one input device - the keyboard.
- one type of interaction - running commands.
- one graphical interface - text file edition.
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
— Antoine de Saint-Exupery