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 9v00686695ea000000000723

From brakets to parens

This is one of the most common problem when you wrap an array for error handling. Vim is useful when you convert foo[i][j][k] into foo(i, j, k) for many times.

Start file
int main() {
	glm::vec3 umax(
		(vx[i+1][j][k]-vx[i][j][k])/2,
		(vy[i][j+1][k]-vy[i-1][j+1][k])/2,
		(vz[i][j][k+1]-vz[i-1][j][k+1])/2
	);
	glm::vec3 umin(
		(m_vx[i][j][k]-m_vx[i-1][j][k])/2,
		(m_vy[i][j][k]-m_vy[i-1][j][k])/2,
		(m_vz[i][j][k]-m_vz[i-1][j][k])/2
	);
}
End file
int main() {
	glm::vec3 umax(
		(vx(i+1, j, k)-vx(i, j, k))/2,
		(vy(i, j+1, k)-vy(i-1, j+1, k))/2,
		(vz(i, j, k+1)-vz(i-1, j, k+1))/2
	);
	glm::vec3 umin(
		(m_vx(i, j, k)-m_vx(i-1, j, k))/2,
		(m_vy(i, j, k)-m_vy(i-1, j, k))/2,
		(m_vz(i, j, k)-m_vz(i-1, j, k))/2
	);
}

View Diff

1d0
< 
4,6c3,5
< 		(vx[i+1][j][k]-vx[i][j][k])/2,
< 		(vy[i][j+1][k]-vy[i-1][j+1][k])/2,
< 		(vz[i][j][k+1]-vz[i-1][j][k+1])/2
---
> 		(vx(i+1, j, k)-vx(i, j, k))/2,
> 		(vy(i, j+1, k)-vy(i-1, j+1, k))/2,
> 		(vz(i, j, k+1)-vz(i-1, j, k+1))/2
9,11c8,10
< 		(m_vx[i][j][k]-m_vx[i-1][j][k])/2,
< 		(m_vy[i][j][k]-m_vy[i-1][j][k])/2,
< 		(m_vz[i][j][k]-m_vz[i-1][j][k])/2
---
> 		(m_vx(i, j, k)-m_vx(i-1, j, k))/2,
> 		(m_vy(i, j, k)-m_vy(i-1, j, k))/2,
> 		(m_vz(i, j, k)-m_vz(i-1, j, k))/2
13c12
< }
\ No newline at end of file
---
> }

Solutions by @winter-loo:

Unlock 49 remaining solutions by signing in and submitting your own entry
Created by: @mirroris

241 active golfers, 1103 entries

Solutions by @winter-loo:
25
#52 - winter-loo / @winter-loo

03/15/2026 at 06:28PM

25
#>52 - winter-loo / @winter-loo

03/16/2026 at 05:34PM

26
#>77 - winter-loo / @winter-loo

03/15/2026 at 06:25PM

27
#>82 - winter-loo / @winter-loo

03/15/2026 at 06:22PM

28
#>86 - winter-loo / @winter-loo

03/15/2026 at 06:19PM

29
#>88 - winter-loo / @winter-loo

03/15/2026 at 06:09PM

29
#>88 - winter-loo / @winter-loo

03/15/2026 at 06:11PM

32
#>94 - winter-loo / @winter-loo

03/15/2026 at 11:07AM

33
#>95 - winter-loo / @winter-loo

03/15/2026 at 10:45AM

33
#>95 - winter-loo / @winter-loo

03/15/2026 at 10:46AM

33
#>95 - winter-loo / @winter-loo

03/15/2026 at 10:46AM

33
#>95 - winter-loo / @winter-loo

03/15/2026 at 10:46AM

33
#>95 - winter-loo / @winter-loo

03/15/2026 at 10:47AM

33
#>95 - winter-loo / @winter-loo

03/15/2026 at 10:47AM

33
#>95 - winter-loo / @winter-loo

03/15/2026 at 11:02AM

34
#>103 - winter-loo / @winter-loo

03/15/2026 at 10:31AM

34
#>103 - winter-loo / @winter-loo

03/15/2026 at 10:35AM

34
#>103 - winter-loo / @winter-loo

03/15/2026 at 10:44AM

35
#>119 - winter-loo / @winter-loo

03/15/2026 at 10:16AM

35
#>119 - winter-loo / @winter-loo

03/15/2026 at 10:16AM

35
#>119 - winter-loo / @winter-loo

03/15/2026 at 10:17AM

35
#>119 - winter-loo / @winter-loo

03/15/2026 at 10:19AM

35
#>119 - winter-loo / @winter-loo

03/15/2026 at 10:19AM

35
#>119 - winter-loo / @winter-loo

03/15/2026 at 10:19AM

35
#>119 - winter-loo / @winter-loo

03/15/2026 at 10:20AM

35
#>119 - winter-loo / @winter-loo

03/15/2026 at 10:21AM

35
#>119 - winter-loo / @winter-loo

03/15/2026 at 10:34AM

36
#>121 - winter-loo / @winter-loo

03/15/2026 at 10:11AM

36
#>121 - winter-loo / @winter-loo

03/15/2026 at 10:17AM

37
#>128 - winter-loo / @winter-loo

03/15/2026 at 09:55AM

37
#>128 - winter-loo / @winter-loo

03/15/2026 at 10:15AM

37
#>128 - winter-loo / @winter-loo

03/15/2026 at 10:18AM

38
#>136 - winter-loo / @winter-loo

03/15/2026 at 09:42AM

38
#>136 - winter-loo / @winter-loo

03/15/2026 at 10:05AM

39
#>146 - winter-loo / @winter-loo

03/15/2026 at 09:31AM

39
#>146 - winter-loo / @winter-loo

03/15/2026 at 09:47AM

39
#>146 - winter-loo / @winter-loo

03/15/2026 at 09:50AM

39
#>146 - winter-loo / @winter-loo

03/15/2026 at 09:50AM

40
#>156 - winter-loo / @winter-loo

03/15/2026 at 09:28AM

41
#>160 - winter-loo / @winter-loo

03/15/2026 at 09:21AM

41
#>160 - winter-loo / @winter-loo

03/15/2026 at 09:30AM

42
#>176 - winter-loo / @winter-loo

03/15/2026 at 09:24AM

47
#>196 - winter-loo / @winter-loo

03/15/2026 at 09:14AM

104
#>238 - winter-loo / @winter-loo

03/15/2026 at 08:39AM

106
#>238 - winter-loo / @winter-loo

03/15/2026 at 07:48AM

114
#>239 - winter-loo / @winter-loo

03/15/2026 at 07:45AM

243
#>240 - winter-loo / @winter-loo

03/15/2026 at 05:22AM

245
#>240 - winter-loo / @winter-loo

03/15/2026 at 05:15AM

560
#>241 - winter-loo / @winter-loo

03/15/2026 at 05:11AM