<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/making-ascii-art-in-vim-osamnhgcc" -->

---
title: Making ASCII art in Vim | daily.dev
description: A practical guide to using Vim's built-in features for creating ASCII art without any plugins. Covers virtualedit mode for free cursor movement, Visual block...
canonical: https://daily.dev/posts/making-ascii-art-in-vim-osamnhgcc
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Making ASCII art in Vim | daily.dev
og:description: A practical guide to using Vim's built-in features for creating ASCII art without any plugins. Covers virtualedit mode for free cursor movement, Visual block...
og:url: https://daily.dev/posts/making-ascii-art-in-vim-osamnhgcc
og:image: https://api.daily.dev/og/posts/OsamnHgCC.png
og:image:alt: Making ASCII art in Vim
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Making ASCII art in Vim

**[Hacker News](https://daily.dev/sources/hn)** · 9 min read · 0 upvotes · 0 comments

## Summary

A practical guide to using Vim's built-in features for creating ASCII art without any plugins. Covers virtualedit mode for free cursor movement, Visual block mode for inserting on multiple lines simultaneously, replacing regions with spaces to erase sections, copy-paste techniques using the 1vP pattern to overwrite without shifting content, and recording macros to repeat patterns. Also touches on mouse support and the list/listchars settings for visualizing whitespace.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://alexyang.dev/vim-ascii-art>

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 26 comments across hackernews (as of 2026-07-23).

**TL;DR:** The community is largely enthusiastic about the post, with commenters sharing additional Vim tips (search offsets, figlet integration, visual block tricks) and expressing genuine appreciation for the techniques covered.

**Sentiment:** 75% positive · 20% mixed · 5% skeptical

**The case for**

- Visual block mode and virtualedit are praised as killer Vim features that make ASCII art practical.
- Using `:r!figlet` as a quick way to generate large ASCII text inside Vim was highlighted as a handy complement to the techniques.
- The post inspired sharing of related advanced Vim features like `\zs` for match positioning and search offsets.

**The pushback**

- Some commenters noted that plugins (e.g. mini.move) can make ASCII art even easier, implying the built-in approach has friction.
- One commenter's custom script to pre-fill a buffer with spaces suggests the virtualedit workflow isn't seamless for everyone.

**By community**

- hackernews (positive): Commenters are enthusiastic, actively sharing complementary Vim tips and expressing that the post introduced them to features they hadn't known before.

**Open questions**

- Are there other good references or resources for getting into ASCII art beyond this post?

**Highlights**

> Neat. The quick and dirty way I use if I want to make something big and unmissable is to invoke figlet inside vim: ":r!figlet vim"
> — [tjoff on hackernews · 2 comments](https://news.ycombinator.com/item?id=49019555)

> Visual block mode and virtual edit are such killer features of vim. I also like plugins like https://github.com/nvim-mini/mini.move  That allows you to move selected characters around; it's super useful to correct mistakes or reorder things quickly, and it's also very intuitive to make ASCII art with it!
> — [qiine on hackernews](https://news.ycombinator.com/item?id=49018425)

> Another slew of utility lies in `:help searchoffset`, often like the following: https://til.codeinthehole.com/posts/about-vims-semicolon-sea...     /x/e-3     /x/+1     /x/;/yz ...it allows near arbitrary cursor placement (eg: this blog articles "squiggle" situation) to be able to find the beginning of the squiggle, or the end of the squiggle (or temporarily using "X" and "Z" for start/end, and "clearing" it with `V...:s/[XY]/./g`
> — [ramses0 on hackernews · 2 comments](https://news.ycombinator.com/item?id=48991550)

> For the last example given in that article:     /test_.*_errors/;/errors I find it much easier to use "\zs". That tells vim where you want the "start" of the match to be. Everything before the "\zs" is just treated like context:     /test_.*_\zserrors It is also useful for ":s/match/sub"
> — [sudobash1 on hackernews · 1 comments](https://news.ycombinator.com/item?id=49022358)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=48983076) · 103 points · 26 comments

## Similar posts on daily.dev

- [Maximize Vim with Macros](https://daily.dev/posts/maximize-vim-with-macros-pomkjl9yk) · Atomic Spin · 0 upvotes · 0 comments
- [preservim/vim-pencil: Rethinking Vim as a tool for writing](https://daily.dev/posts/preservim-vim-pencil-rethinking-vim-as-a-tool-for-writing-ijysfzfvd) · Hacker News · 1 upvotes · 0 comments
- [Vim text editor game teaches you keyboard shortcuts with ice cream delivery](https://daily.dev/posts/vim-text-editor-game-teaches-you-keyboard-shortcuts-with-ice-cream-delivery-8a6i0wyuu) · The Register · 10 upvotes · 2 comments

---

Tags: [#vim](https://daily.dev/tags/vim)

[View this post on daily.dev](https://daily.dev/posts/making-ascii-art-in-vim-osamnhgcc)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Making ASCII art in Vim","url":"https://daily.dev/posts/making-ascii-art-in-vim-osamnhgcc","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/making-ascii-art-in-vim-osamnhgcc"},"datePublished":"2026-07-23T12:44:36.170Z","dateModified":"2026-07-23T15:05:44.539Z","description":"A practical guide to using Vim's built-in features for creating ASCII art without any plugins. Covers virtualedit mode for free cursor movement, Visual block...","image":"https://media.daily.dev/image/upload/s--P4t4XyoV--/f_auto/v1722860399/public/Placeholder%2001","thumbnailUrl":"https://media.daily.dev/image/upload/s--P4t4XyoV--/f_auto/v1722860399/public/Placeholder%2001","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/making-ascii-art-in-vim-osamnhgcc","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"vim","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"Making ASCII art in Vim"}]}
```

