Making ASCII Art in Vim

https://news.ycombinator.com/rss Hits: 10
Summary

I like using Vim to make ASCII art. I don't use any plugins; Vim already has a bunch of built-in features that are super useful for making ASCII art! _ _/_Z _ / |// / |/ \ \__/_/_/_/_/ This article is for people who have made ASCII art before and want to see what other tools are out there. If you've never tried making ASCII art before, I recommend you don't read this article! You don't need any of this information to make great ASCII art. Instead, just open up your favorite text editor and start typing. If you're not sure what to make, study the masters and study from life. After that, if you're still curious, then come back and read this. Vim is not for everyone. I just use it because it's what I know. If you suffer from the same curse, or wish to, then read on! I recommend having the basics down first (e.g. opening a file, switching between modes, saving and exiting). If you're new to Vim, you can teach yourself the basics with vimtutor! With all those disclaimers out of the way, let's get into it. Move your cursor past the end of the line .--. .--. .--. .--. |@ @ | |@ @ | |@ @ | |o o | | | | | | | |~~~ | '^^^^' '^^^^' '^^^^' '^^^^' When drawing ASCII art, you'll often want to move your cursor to open space. Most text editors will not let you do that unless you fill the buffer with spaces first, and indeed Vim behaves that way by default as well. But do: :set virtualedit=all Now you can move your cursor beyond the end of the line. When you insert there, Vim automatically fills in the necessary whitespace on the left. Note that while there doesn't need to be a character present for the cursor to move there, there still has to be be a line there. For more information, see: :help virtualedit It's also totally valid to not use this feature and just fill the buffer with spaces at the beginning of your session instead; just know that in Vim it's not absolutely necessary. If that's what you want to do, Vim can still help: you can prefix the i and p command with a number ...

First seen: 2026-07-23 05:56

Last seen: 2026-07-23 15:05