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 @GavinKoeng:

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

214 active golfers, 931 entries

Solutions by @GavinKoeng:
24
#2 - Gavin / @GavinKoeng

12/09/2025 at 02:50AM

25
#>27 - Gavin / @GavinKoeng

10/24/2025 at 02:32AM

26
#>62 - Gavin / @GavinKoeng

10/24/2025 at 02:27AM

27
#>72 - Gavin / @GavinKoeng

10/24/2025 at 02:23AM

28
#>77 - Gavin / @GavinKoeng

10/24/2025 at 02:26AM

33
#>82 - Gavin / @GavinKoeng

10/24/2025 at 02:21AM

35
#>99 - Gavin / @GavinKoeng

10/24/2025 at 01:59AM

36
#>107 - Gavin / @GavinKoeng

10/24/2025 at 01:57AM

37
#>111 - Gavin / @GavinKoeng

10/24/2025 at 01:56AM

38
#>118 - Gavin / @GavinKoeng

10/24/2025 at 01:54AM

43
#>159 - Gavin / @GavinKoeng

10/24/2025 at 01:52AM

70
#>200 - Gavin / @GavinKoeng

10/24/2025 at 01:51AM