Real Vim ninjas count every keystroke - do you?

Pick a challenge, fire up Vim, and show us what you got.

Changelog, Rules & FAQ, updates: @vimgolf, RSS.

Your VimGolf key: please sign in

$ gem install vimgolf
$ vimgolf setup
$ vimgolf put 5d4cb5ed5f97770009e52f52

Unsemantic linewrapping

[Inspired by a blog post I read: https://scott.mn/2014/02/21/semantic_linewrapping/. Text adapted.] Sometimes when editing a Markdown file, I wrap the lines semantically. Instead of inserting a newline at 70 columns (or whatever), or making paragraphs one long line, I put in newlines at a point that seems logical to me. This may seem silly, but it produces better diffs. Semantic linewrapping also makes editing snappier. I can delete, edit or insert sentences easily using linewise operations. Code-oriented text editors like Vim and [REDACTED] are really good at this kind of manipulation. Editing text that hasn't been wrapped semantically is a pain, though:

Start file
Here is a paragraph with some stuff in it. This is the second sentence. This
sentence
is really long, and ugly, and the truth is that it basically says
nothing at all
. This is the last sentence of the paragraph; thanks for reading!
End file
Here is a paragraph with some stuff in it. This is the second sentence. This is
the
last sentence of the paragraph; thanks for reading!

View Diff

1,3c1,2
< Here is a paragraph with some stuff in it. This is the second sentence. This
< sentence is really long, and ugly, and the truth is that it basically says
< nothing at all. This is the last sentence of the paragraph; thanks for reading!
---
> Here is a paragraph with some stuff in it. This is the second sentence. This is
> the last sentence of the paragraph; thanks for reading!

Solutions by @bornintheflames:

Unlock 14 remaining solutions by signing in and submitting your own entry
Created by: @NieDzejkob

233 active golfers, 934 entries

Solutions by @bornintheflames:
9
#101 - Remus Dalrymple / @bornintheflames

12/22/2023 at 02:07AM

10
#>154 - Remus Dalrymple / @bornintheflames

12/22/2023 at 02:06AM

11
#>168 - Remus Dalrymple / @bornintheflames

12/22/2023 at 02:06AM

12
#>179 - Remus Dalrymple / @bornintheflames

12/22/2023 at 02:05AM

13
#>194 - Remus Dalrymple / @bornintheflames

12/22/2023 at 02:04AM

13
#>194 - Remus Dalrymple / @bornintheflames

12/22/2023 at 02:05AM

15
#>211 - Remus Dalrymple / @bornintheflames

12/22/2023 at 02:03AM

16
#>218 - Remus Dalrymple / @bornintheflames

12/22/2023 at 02:01AM

17
#>219 - Remus Dalrymple / @bornintheflames

12/22/2023 at 02:00AM

22
#>228 - Remus Dalrymple / @bornintheflames

12/22/2023 at 01:57AM

23
#>230 - Remus Dalrymple / @bornintheflames

12/22/2023 at 01:59AM

26
#>231 - Remus Dalrymple / @bornintheflames

12/22/2023 at 01:54AM

46
#>232 - Remus Dalrymple / @bornintheflames

12/22/2023 at 01:55AM

52
#>233 - Remus Dalrymple / @bornintheflames

12/22/2023 at 01:53AM