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 4d1a6ed2b8cb3409320000c9

Add fold markers to a .c file

Fold markers can make it easier to navigate source code. Add them to this .c file.

Start file
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

void copy(char *to, char *from, size_t count) {
   
register n=(count+7)/8;
   
switch(count%8){
   
case 0: do{     *to = *from++;
   
case 7:         *to = *from++;
   
case 6:         *to = *from++;
   
case 5:         *to = *from++;
   
case 4:         *to = *from++;
   
case 3:         *to = *from++;
   
case 2:         *to = *from++;
   
case 1:         *to = *from++;
           
}while(--n>0);
   
}
}

int main() {
   
char *input = malloc(sizeof(char) * 1024);
   
assert(input);
   
char *output = malloc(sizeof(char) * 1024);
   
assert(output);
    copy
(output, input, sizeof(char) * 1024);
   
return 0;
}
End file
#include <string.h>/*{{{*/
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
/*}}}*/

void copy(char *to, char *from, size_t count) {/*{{{*/
   
register n=(count+7)/8;
   
switch(count%8){
   
case 0: do{     *to = *from++;
   
case 7:         *to = *from++;
   
case 6:         *to = *from++;
   
case 5:         *to = *from++;
   
case 4:         *to = *from++;
   
case 3:         *to = *from++;
   
case 2:         *to = *from++;
   
case 1:         *to = *from++;
           
}while(--n>0);
   
}
}/*}}}*/

int main() {/*{{{*/
   
char *input = malloc(sizeof(char) * 1024);
   
assert(input);
   
char *output = malloc(sizeof(char) * 1024);
   
assert(output);
    copy
(output, input, sizeof(char) * 1024);
   
return 0;
}/*}}}*/

View Diff

1c1
< #include <string.h>
---
> #include <string.h>/*{{{*/
4a5
> /*}}}*/
6c7
< void copy(char *to, char *from, size_t count) {
---
> void copy(char *to, char *from, size_t count) {/*{{{*/
19c20
< }
---
> }/*}}}*/
21c22
< int main() {
---
> int main() {/*{{{*/
28c29
< }
---
> }/*}}}*/

Solutions by @shahanavazm:

Unlock 8 remaining solutions by signing in and submitting your own entry
Created by: @wolever

189 active golfers, 660 entries

Solutions by @shahanavazm:
38
#143 - shahanavaz m / @shahanavazm

01/31/2024 at 03:20AM

39
#>147 - shahanavaz m / @shahanavazm

01/23/2024 at 04:39AM

41
#>149 - shahanavaz m / @shahanavazm

03/08/2023 at 04:41PM

42
#>150 - shahanavaz m / @shahanavazm

02/19/2022 at 04:15AM

54
#>176 - shahanavaz m / @shahanavazm

01/28/2024 at 04:26AM

56
#>178 - shahanavaz m / @shahanavazm

01/24/2024 at 04:40AM

61
#>182 - shahanavaz m / @shahanavazm

01/23/2024 at 02:16PM

61
#>182 - shahanavaz m / @shahanavazm

01/26/2024 at 10:03PM