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

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

216 active golfers, 933 entries

Solutions by @janbellon:
25
#33 - Jan Bellon / @janbellon

12/03/2025 at 11:29PM

26
#>67 - Jan Bellon / @janbellon

12/03/2025 at 11:29PM

27
#>72 - Jan Bellon / @janbellon

12/03/2025 at 11:26PM

27
#>72 - Jan Bellon / @janbellon

12/03/2025 at 11:27PM

28
#>77 - Jan Bellon / @janbellon

12/03/2025 at 11:26PM

30
#>79 - Jan Bellon / @janbellon

12/03/2025 at 11:23PM

33
#>82 - Jan Bellon / @janbellon

12/03/2025 at 11:10PM

34
#>87 - Jan Bellon / @janbellon

12/03/2025 at 11:04PM

34
#>87 - Jan Bellon / @janbellon

12/03/2025 at 11:08PM

35
#>104 - Jan Bellon / @janbellon

12/03/2025 at 11:02PM

37
#>111 - Jan Bellon / @janbellon

12/03/2025 at 11:01PM

39
#>127 - Jan Bellon / @janbellon

12/03/2025 at 10:59PM

40
#>134 - Jan Bellon / @janbellon

12/03/2025 at 10:58PM

42
#>155 - Jan Bellon / @janbellon

12/03/2025 at 10:55PM

44
#>166 - Jan Bellon / @janbellon

12/03/2025 at 10:57PM

57
#>189 - Jan Bellon / @janbellon

12/03/2025 at 10:53PM

63
#>196 - Jan Bellon / @janbellon

12/03/2025 at 10:50PM

64
#>197 - Jan Bellon / @janbellon

12/03/2025 at 10:47PM

68
#>202 - Jan Bellon / @janbellon

12/03/2025 at 10:45PM

69
#>202 - Jan Bellon / @janbellon

12/03/2025 at 10:40PM

77
#>207 - Jan Bellon / @janbellon

12/03/2025 at 10:37PM

84
#>210 - Jan Bellon / @janbellon

12/03/2025 at 10:35PM