Search Everything in One Place

Explore the web, images, videos, news, and more – all in one place.

News

Writing inside the terminal sounds absurd until you realize how much faster you actually work

Writing inside the terminal sounds absurd until you realize how much faster you actually work
Writing inside the terminal sounds absurd until you realize how much faster you actually work

It's less ridiculous than it sounds.

I have used the terminal for all sorts of things, whether it’s running a real browser inside it or managing tasks. The terminal is more capable than you think, and it also eliminates most of the distractions you usually experience when using GUI tools. I realized this when I tried to run my entire writing workflow in the terminal. All I needed were a few of the right extensions, and they turned the terminal into a surprisingly usable interface for writing. I was able to format text properly, organize notes into folders, and even maintain a version history.

Setting up the terminal for writing

Neovim and a few extensions get the job done

neovim-1
neovim hero

You’d expect writing inside the terminal to involve opening a plain-text file in Nano and giving up every convenience available in a regular writing app, but that’s not entirely the case. You can get fairly close to a writing tool by installing Neovim. It supports modern plugins, syntax highlighting, autocomplete, and several other features that make it much more capable than a basic terminal text editor.

There’s still a learning curve, especially if you’ve never used Vim-style keyboard controls, but you don’t need to learn every command before you can start writing. I began with the basic controls required to open a file, enter insert mode, save my work, and exit the editor. Once I had those figured out, writing in Neovim wasn’t radically different from using any other distraction-free editor. Most actions were available through keyboard commands, so I didn’t have to keep reaching for the mouse whenever I wanted to move through a document, delete a paragraph, or jump between files.

I also installed Goyo.vim, which removes most of Neovim’s interface elements and centers the text in the terminal window. This gave me a clean, typewriter-like writing environment without status lines, file trees, or other information I don't need.

Finally, I also installed Markdown to handle all the formatting. It allows me to use simple punctuation to create headings, bold text, italics, links, and lists. Since Markdown files are regular text files, I can open them in practically any editor without worrying about compatibility or proprietary formats. I created separate folders for articles, research, notes, and unfinished ideas, then navigated between them directly through the terminal.

You can always add more features

There's no shortage of extensions

Nodes in NeoVim
Nodes in NeoVim

Once the basics are out of the way, you can work on features that make Terminal a better tool for writing. I added features that made it more comfortable for longer writing sessions. My biggest problem was still staring at a block of text. The same block doesn't look so odd on writing tools like Google Docs, but somehow, in a terminal, it was just not sitting right with me.

I added Limelight.vim to solve that problem. It keeps the paragraph around the cursor clearly visible while dimming the surrounding text, which makes it easier to concentrate on the part I’m currently writing or editing. Limelight also works particularly well alongside Goyo, and I could toggle both whenever I wanted to review the complete article.

Managing files through commands also became annoying once I had several folders containing drafts, notes, and research. I installed Ranger, a terminal file manager with Vim-style controls and a multi-column view of the folder hierarchy. It lets me browse directories, preview Markdown files, rename drafts, and move documents without leaving the terminal. Since its navigation controls resemble those used by Neovim, I didn’t have to learn a completely different set of keyboard commands. I could find an article in Ranger, open it directly in Neovim, and return to the same folder after finishing.

The terminal still isn’t for everyone

Not unless you use terminal regularly

note in neovim
note in neovim

After getting the core setup working, I added a few optional tools that made the terminal more practical for managing a larger collection of drafts. The most useful was fzf, a fuzzy finder that lets me search for files without remembering their complete names or exact locations. I only needed to type a few characters from the filename, and fzf narrowed down the available results instantly. This became particularly helpful once my writing folder started filling up with research notes, unfinished drafts, and different versions of the same article.

Git added proper version control to the entire setup. I could commit a draft at different stages and review exactly what had changed between two versions. If I wanted to rewrite a section without losing the original, I could create a separate branch and experiment freely. This probably makes more sense for fiction writers working with alternative plot lines, but I found it useful when testing different structures or making major edits to an article.

Even with these features, I wouldn’t recommend that everyone move their writing workflow into the terminal. Setting everything up takes time, and basic actions require learning commands that graphical writing applications handle through familiar buttons and menus. Collaboration, comments, rich formatting, and document sharing are also much easier in Google Docs or Microsoft Word.

Terminal is more useful than you think

This setup makes the most sense if you already spend a large part of your day inside the terminal. In that situation, Neovim, fzf, Git, and a few plugins let you write without interrupting your existing workflow or opening another distracting application. For general writing, however, the extra configuration and learning curve are difficult to justify. I enjoyed using it more than I expected, but I wouldn’t pretend that the terminal is the most sensible writing tool for everyone.

Read full story on XDA Developers

Related News

More stories you might be interested in.

Billionaire Jeff Bezos called Amazon’s customer service to prove a point but waited in silence for more than 10 minutes — ‘It was really long’
Barchart·18 hours ago

Billionaire Jeff Bezos called Amazon’s customer service to prove a point but waited in silence for more than 10 minutes — ‘It was really long’

Numbers can tell a story. Amazon (AMZN) founder Jeff Bezos believed they could also tell the wrong one. When customer complaints didn’t match what his team’s reports were saying, he decided there was only one way to settle the debate. Speaking on the Lex Fridman Podcast in December 2023, Bezos recalled an early Amazon meeting where executives revie...

Top