The REAL writing, not code writing š.
This post reflects only the thoughts of its author, Thomas Alcala.
If you donāt know vim, I recommend trying Vim Adventures, a game-like vim tutorial.
It was already the case before with tools like WordPress, but with the surge of headless CMS, serverless platforms, JAMstack, Wix, writing and publishing your own blog is easier than ever.
Thereās a lot of value in browser editors too (the famous WYSIWYG, What You See Is What You Get) that let users click text formatting buttons, and the HTML code is generated for them. No need to learn web design, and with browser plugins like the Grammarly plugin, you also get the spelling, grammar corrections youād get in an office software.
So you ask āis there a reason to try and write with vim?ā
Vim is not the most beginner-friendly editor, so this is mostly for people already familiar with vim, but the answer is YES!
Letās try to get some cool writing features, to prove it!
As you may know, the vim configuration is located in ~/.vimrc.
Technically, you can call vi -u /path/to/some/other/vimrc to use
another configuration file, so it should be possible to use different
configurations for code and writing. I prefer to maintain only one file, so I use a plugin manager for vim.
For text formatting, I use
vim-pencil. It automatically
breaks lines in Markdown files, hide formatting code, etc. It helps
keeping the paragraphs clean.
I use the basic implementation with no configuration, the only trick
I made is with vim-plug to conditionally import it, so it doesnāt break
lines and stuff when I write code:
Plug 'reedes/vim-pencil', { 'for': ['text', 'notes', 'markdown', 'mkd'] }
For spell checking, I use another excellent plugin by reedes: vim-lexical. You can also configure a dictionary and a thesaurus, for completion, for technical terms, etc. Very powerful.
Last but not least, by reedes, thereās a plugin for writing quality, called vim-wordy.
Itās got a bunch of dictionary rings for the English language, and you can switch between them. For example, it detects
Iāll run it for fun after a first draft of this post, this should be somewhat of an eye opener š.
Completion is kind of done by the lexical plugin, this is more about prediction of the next word in a sentence!
Would you like an example?

For a non-native English speaker like me, this is very useful, most of all for some idiomatic expressions.
This is done by combining some data, scripts and vim plugins:
export NEXTWORD_DATA_PATH=/path/to/nextword-data
go get -u github.com/high-moctane/nextword
asyncomplete and async vim plugins too, itās all in the plugin installation instructionsPlug 'high-moctane/asyncomplete-nextword.vim', { 'for': ['text', 'notes', 'markdown', 'mkd'] }
in my .vimrc file, so this plugin doesnāt try to complete code
with grammarily correct words
With very technical or outlandish posts, like one trying to sell writing blog posts with vim, itās almost mandatory to put some emojis to lighten the tone. I use a couple of plugins for that: vim-emoji and asyncomplete-emoji, that takes advantage of the asyncomplete plugin already installed in the completion segment of this post.
The asyncomplete plugin autocompletes stuff starting with colon, like
:thumbsup:, then I mapped a vim-emoji command in my .vimrc file that uses sed to translate all emojis
to unicode š!
nnoremap <Leader>e :s/:\([^:]\+\):/\=emoji#for(submatch(1), submatch(0))/g<CR>
nnoremap <Leader>E :%s/:\([^:]\+\):/\=emoji#for(submatch(1), submatch(0))/g<CR>
So now, <Leader> (comma , in my configuration) + e rewrites all
:emoji: to their symbol, lowercase e for the current line, uppercase
for the whole buffer.
I also use goyo.vim and limelight.vim, even though it may be even more distracting until you get used to it! š

Not for vim but for screen recording and making gifs out of videos, I use:
ffmpeg -i ~/Videos/simplescreenrecorder-2020-03-29_19.22.57.mkv -r 15 -vf scale=720:-1 assets/images/goyo.gif
Turns out itās not completely crazy to author stuff in vim! š