- Text Editing Resources
- FAQs
Text editing is incredibly valuable for programming, note taking, organizing and reviewing written information. Here is a collection of thoughts and links I have found to be valuable.
A lot of people on reddit and on forums ask if it is worth learning the vim normal mode keybindings. This is a difficult question to answer since it depends on your needs and workflows. I believe if you work in a text a certain amount of time it is worth learning, but if you only do small amounts of time in a text editor it may not be worth it. Here is a way to think about this, if you do programming in a text editor more than a couple hours a week I would say it could be worth learning. If you write notes or read a lot of text more than a couple of hours a week then it may also be worth learning. However, please note that folks who do not program are a little more mixed on whether it is worth the time to learn and use, whereas programmers tend to find it worth the time to learn. It is not just a productivity boost, it is also more engaging and fun as you work through code or text. I would explore the other options for editing besides the vim keybindings to see if you like one of the other approaches better.
If you are a programmer I recommend trying and learning the basics of all three major text editors which are Visual Studio Code, neovim (or original vim) and emacs. If you are a writer there are specific setups (distributions) that you can find for these tools that are targeted for that type of work. I mostly program and take notes so that is how I focus on these tools. If you are a programmer the Visual Studio Code with the add-on (extension) vscodevim provides a setup that you can have up and running super fast that allow you to learn the ways of vim but have all of the modern conveniences of a high end text editor working right away. Make sure you go through all of the extensions settings and turn on some of the plugins if you want to get familiar with them. They are not all enabled by default. Emacs with vim emulation. Emacs has a robust platform with tremendous built in functionality. Plus you can extend it with add-ons and you can have custom functions you can easily add. OpenAI ChatGPT, Google Gemini can generate custom functions you can add to your emacs configuration. Make sure you add a unique prefix to any custom functions so you do not create any name conflicts. If you do not like the vim keybindings Emacs has the most other options available including variations of the vim keybindings and keybindings that are completely different or can be customized to suite your needs. The only slight downside if you go these routes is that they are only readily available for emacs, but luckily emacs can be infinitely customized and extended.
Examples of other keybinding options: First a quick note on the vanilla Emacs keybindings. I have spent time learning them and they are really hard on your hands. The only way you can sort of mitigate that issue is by having a custom keyboard where you can reprogram the buttons so you do not put strain on your pinky. God mode and devil mode can also solve the hand fatigue problem. Yes, emacs pinky is actually a problem and hand fatigue in general. If you do want to learn the vanilla keybindings they are very logical once you get used to them and they pair well with either god mode or devil mode.
Xah Fly Keys is the most efficient system for programmers, but only readily available for Emacs. I would only consider learning Xah Fly Keys if you program more than 70% of your time and you are ok being locked into emacs. Below are links to YouTube videos, you have to watch multiple videos to see the real benefit of this system. Here is a great article about the pros and cons of this approach: https://www.deusinmachina.net/p/modal-editing-with-emacs-using-xah
Boon is a well thought out system, again only for emacs. I like some of the thoughts and layouts that are in the system. It is clearly a smart design. The only problem with it is even though it is easy to learn I do not feel like learning it gives you the boost that most people are looking for in their workflow. It is still nice and straightforward and well designed. Still worth looking at, but I think most people would be happier with vim or if you are all in on emacs Xah Fly Keys.
Meow is a variation on the vim keybindings. The only problem I have with that is if I switch between Meow and standard vim it is too confusing to my brain because they are so similar. It is almost easier to keep two different systems distinguished in your brain if they are totally different. A lot of people really like Meow and it is really easy to make adjustments to the setup of it. I would say if you are leaving vim and not going to go back you might really enjoy the improvements that Meow makes.
Wakib: Emacs for the rest of us. This is both a minor mode and a starter kit. This is incredibly well thought out. I like the keyboard layout it is very logical and similar to some of the other systems mentioned above. This feels very well polished with the starter kit giving you a lot of functionality right away. This gives you the benefit of cut, copy, paste in the same way as other apps it also has a robust starter kit. You can use the starter kit or the keybindings independently. I used this for a little while, but I went back to vim keybindings.
- Intro to Wakib, an Emacs Starter Kit
- https://github.com/darkstego/wakib-emacs
- https://github.com/darkstego/wakib-keys
- https://ergoemacs.github.io/
- https://github.com/xahlee/xah-fly-keys
- The Most Efficient Emacs Workflow, more efficient than vim
- Xah Talk Show 2023-10-25 Xah Fly Keys, Bill Gosper Equations, Game of Life
- Xah Talk Show Ep532 What Happens When You Blog for 25 Years
- intro to svalboard datahand, best input device
- Xah Talk Show Ep541, emacs org-mode key, WolframLang tiling, plane curves, math
- xah emacs talk show 2019-01-07 xah-html-mode vs org mode
- emacs xah fly keys intro
- https://github.com/emacsorphanage/god-mode
- https://github.com/jyp/boon
- https://github.com/susam/devil
- Emacs Packages for Modal Editing - System Crafters Live!
- https://systemcrafters.net/live-streams/april-21-2023/
Emacs can read written text out loud in audio format text-to-speech. It has a robotic voice, but I actually prefer that when I am trying to study or review certain kinds of information.
You can take a video and extract the audio and then transcribe it with a paid service like this one https://turboscribe.ai. Then you can read it or have Emacs perform text-to-speech. This allows you to review the information at different speeds. It allows a more consistent pace to be possible. It allows for searching through information.
Emacs has a built in web browser, it is handy if you have a text heavy document that you want open side by side with a place to take notes in emacs. It does not replace full featured web browsers, but is still helpful for reference document review.
Neovim and Emacs both have distributions. A lot of people tell you to build your own configuration. It can take a long time to really understand how to setup your own configuration to best optimize your workflows. I like how the distributions usually offer keybindings decided on with a logical layout. It is helpful to build your own config because you learn so much. - https://gitlab.com/public-repositories/emacs-groundup/-/blob/main/src/docs/emacs-groundup.org
I highly recommend playing this game. I have to confess that I find the game frustrating, but it helps you learn, so I feel it is worth the trouble of playing the game and paying for it. As long as you know you want to build vim skills, then it is worth the trouble to play the game in my opinion. You can play the game a little while for free, after that you have to pay. At first I was not willing to pay for it, but I decided to just do it anyway and I am really glad I did. It forces you to learn the vim motions in a different context and makes you more effective in text editing contexts.
The reason why I find the game frustrating is the author does not give you enough information for you to know what you are supposed to do. He does this on purpose to challenge you, but I wish he added more of a hint system in the game to give you a bit more information to work with, but please do not let this detour you from working through the challenges.
I recommend you play the game and struggle as much as possible before trying to find any answers online.
I have some mental/brain challenges with working through a game like this, so I know others may also experience challenges where it may be very difficult for you to figure out what to do in the game.
First take a break and try the problem again. Look at the motions available to you and think about creative ways to use them.
Instead of looking up an answer you can also email the author for a hint. He tries not to give you the answer but prefers just to give you a hint so you can try to figure it out.
This has answers in text form from Level 8 to the Last Level of the main story line. This does not cover the Macro puzzles. There are some small mistakes in the document, but it is mostly correct.
YouTube videos of gaming being played https://www.youtube.com/@landon.wilkins/search?query=adventure The game authors YouTube Channel:
Videos of note:
- Video Explaining the Game
- Level 1 – How to cross the ocean information
- Explains Level 5 where is the hidden key
Org, AsciiDoc and Markdown are a few examples of popular formats for taking notes. There are more choices out there then these options. You can use plain text documents (txt) if you just want to copy and paste a bunch of information into a file that you can search or grep later to find. If you are organizing information that you are going share with others or need the document to be more structured for your own reference then org and Markdown formats are worth learning and using. If you need highly structured control over formatting above what AsciiDoc, Markdown and Org can provide then look into LaTeX. Note you can use a tool called Pandoc to convert these formats to other formats. So you do not need to go to the LaTeX level which is very involved unless you need very specific formatting for PDFs or print.
Org style notation that can be exported to other formats Author has transitioned to this system instead now (I like the simpler approach above, but this does offer more):
- FULL NEOVIM Configuration Walkthrough As A DevOps Engineer On MacOS
- Ultimate Notetaking: My Neovim Zettelkasten Based on Obsidian - Complete Walkthrough
- My Entire Neovim + Tmux Workflow As A DevOps Engineer On MacOS
I like the style and approach of how he uses Markdown and his workflows. When you install neovim it is bare bones, so you can add distribution layer on top of the base that makes it easy to use and awesome right away, you can still customize it further to meet your needs but it gives you a good out of the box experience.
funny video about note taking if you jump to 14:43 his explanation of emacs and 21:20 for neovim or watch the whole thing for entertainment and additional context:
Popular series on doom Emacs:
Japanese app author shares his neovim setups, his app is a note taking app, very inspirational:
- https://youtube.com/@ThePrimeagen/videos
- https://www.youtube.com/@ThePrimeTimeagen/videos
- https://www.youtube.com/@TheVimeagen/videos
- https://www.twitch.tv/theprimeagen
- Discount Codes on Kinesis Official Website - they have many types of keyboards so make sure you look through all of the options.
- https://twitter.com/ThePrimeagen
- https://www.instagram.com/ThePrimeagen/
- https://www.tiktok.com/@theprimeagen
- https://discord.gg/ThePrimeagen
- https://linktr.ee/ThePrimeagen
- https://github.com/ThePrimeagen
- https://github.com/ThePrimeagen?tab=repositories
- https://github.com/ThePrimeagen/ThePrimeagen
- https://github.com/ThePrimeagen/yt
- https://frontendmasters.com/courses/vim-fundamentals/
- https://frontendmasters.com/teachers/the-primeagen/
- How to exit vim - just a silly lol article - if you do need to quit ESC :q! (quit do not save changes) or ESC :wq (write/save your changes and quit)
- From Vim To Zed
- Boot.dev - Learn Backend Development the Smart Way - Primeagen Discount Link
Emacs. It offers the most customization, flexibility, add-ons/plugins… basically an incredible ecosystem. The wide variety of tools can help in many areas, for example:
- You can set a text to speech to read to you.
- You can use a variety of terminals.
- You can edit text using any methodology you want including vim keybindings.
- You can navigate your file system using dired
- You can optimize your workflows by having more tasks inside of Emacs.
- You have full org mode support for text tasks which then can be exported to a myriad of formats.
The org format from Emacs org mode. It is a more consistent implementation compared to Markdown. Although Markdown is not really that bad, Emacs has a robust Markdown mode if you do need that format. You can also convert from org documents to Markdown using Pandoc. Org mode can seem a little overwhelming at first because it can do so much. However, learning the basics can allow you to do the same things that Markdown allows but have the flexibility to expand what you use it for if needed. Look at Orgdown if you want a simpler starting point then full org mode. Another interesting feature is you can use code blocks and then tangle them to export the code blocks to a separate file. This is called literate programming allows you to create one file and then have different exports for documentation and for code. You only have to maintain one file, but you create whatever exports you need. Another option of note is AsciiDoc which has better formatting than Markdown and can be converted using Pandoc to lots of formats as well. It seems to be popular for technical publishing, including but not limited to producing actual technical books, README files, man pages, articles and taking notes.
vanilla emacs, xah fly keys, boon, meow, wakib? My answer on this question has changed multiple times. Many people were shocked when the great YouTuber David Wilson of System Crafters channel switched from evil back to vanilla Emacs keybindings. His reasoning was then he does not have to context switch as much and there is more consistency as he moves around to different parts of Emacs. It also allows him to use plain Emacs with efficiency without having to worry about getting evil mode installed to complete basic tasks. I do agree with this logic. You can always add god or devil mode to translate the normal Emacs keybindings without as much hand strain. Then you can also learn from books more easily since you are using the default keybindings and not a custom setup. If you want to be able to use the same keybindings in multiple programs then you would be either learning some of the vim ways as that is the only one that spans emacs, neovim and vscode as an option. I do not have a perfect answer to this problem, I wish I did. I like switching editors and learning different systems. My usual workflow is to use vim keybindings but to have a quick toggle to turn them off for vanilla Emacs keybindings depending on what I am doing. Then if I want to use neovim for something specific it is easier to use that tool in place of Emacs.