.-=--------++: _ _ _
+== .@@: | | | | ___ | | (_) __ __
++- :: . = %%= | |___| | / \ | | _ \ \/ /
=+= ++*+: @%* | ___ | / ^ | | | | | \ /
-=* :.- .%%# | | | | | --- | | | | / \
-=#========*%%# |_| |_| \___/ |_| |_| /_/\_\
.......::::. -=++++++**+: ......:::---. WASD config v0.1.0
*#-:::::..:#%=.*#-::::...:%%-.*#:::.... :#%-
+* -: +%#:+* -:: *##:++ =- *%#
** #% +%@.** ::= *#@.** + + *#%
## ..- *#@.#* =-=. ##@.** +=. ##@
*+-. .:%#@.#+-.......-%#@.#*-......:-%#@
*|||||||||||%% *||||||||||%% *#********+*%#
=+*********+. =+********++. =++++++++++=
A metamodern
modal text editor for 21sh century.
This is my personal helix editor config, that is my "part-time" editor walking to be the main editor.
I work with node.js, frontend and golang, for this reason my language files are configured for language servers that I use on a daily basis.
Why WASD?!
Have you ever wondered why vi editor
uses the h, j, k and l keys to navigate through text?
No? Looks this fancy guy bellow:
This is one of the strong reasons, a ADM-3A, a computer terminal introduced in 70's.
And why this is important?
Vi editor, was created by Bill Joy in 1976 in a terminal like this, and bellow is the keybord layout of this family of terminal.
No arrows! The default way to "moving" at this time was h, j, k and l. Now is realy easy to understand why vi use this keybinds.
Almost five decades later, we are still influenced by decisions made in this software. Great job Bill!! 👏👏👏
Editors like Vim, Kakoune and more recently Neovim and Helix inherited numerous features from vi, this just proves how good and ahead of its time vi was.
The history of computing is incredible, isn't it?!
But, there had to be a "but", as much as I love modal editors I've never been able to completely adapt to this type of navigation and, and to be honest, if I'm going to move with the keyboard I really prefer to use my left hand. Why? Maybe the influence by many, many hours of gaming on the PC? Perhaps ...
When i put my hands over the keyboard automatically my fingers going to the w, a, s, d. Use the thumb and pinky left to access the modifiers is easy and comfortable to me, leaving my right hand for commands and actions. Yes, like a game... 🤣
*Last but not least, this is not a recommendation, this is how I like my workflow, is good to me and is all fine if this is not good for you.
Metamodern?!
"Metamodernism refers to a number of related discourses about cultural developments that move beyond postmodernism by means of postmodernism. Many metamodern theorists characterize it in terms of both/and mediations between aspects of modernism and postmodernism".
ref.: wiki/Metamodernism
This is a joke, about a another joke. If Neovim is modern Vim, then Helix is post-modern, using WASD can only be metamodernism
.
Sorry, I love art history too. 😼
Why Helix instead of Neovim?
I could summarize it in personal taste, but Helix has a set of characteristics that I like a lot.
- Light a lot
- Very easy to configure with
.toml
files - Simplicity
- Multiple cursors
- Surround
I also occasionally use neovim, you can check my current setup in this repository, but I was wanting to try something more minimalist.
What theme is this?
I use a customization of the Catppuccin Mocha theme with some colors of my personal taste and JetBrainsMono Nerd Font.
I highly recommend any flavor of Catppuccin as a theme for anything you use frequently, your eyes will thank you.
Thank you soooo much Catppuccin contributors!! 😻
How can I test this crazy thing?
requirements
- Nerd Fonts (Optional but very useful)
- Install Helix Editor following the oficial docs
- git to clone this repo
- (Optional) node.js to install vscode language server
- (Optional)Go to install golang language servers
(Optional) If you already has a helix setup make a backup
cp -r ~/.config/helix ~/.config/helix.bak
setup
Clone the repository
git clone https://github.com/ortense/helix ~/.config/helix
Remove the git directory
rm -rf ~/.config/helix/.git
Install language servers
# for html / css
npm i -g vscode-langservers-extracted typescript-language-server @olrtg/emmet-language-server
# go language server
go install github.com/nametake/golangci-lint-langserver@latest
go install github.com/go-delve/delve/cmd/dlv@latest
go install github.com/a-h/templ/cmd/templ@latest
Install and configure other language servers as needed by following the official documentation.