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 5491377167afde00024ba4cf

Refactoring useless Method away

Real-life challenge, convert a bunch of ifs to a switch statement

Start file
if (isTyp(YBD.Typ_GEBAEUDE, currentTyp)) {
        immobilienItem
.setGebaeudeNr(currentItem.getGebaeudeNr());
}
if (isTyp(YBD.Typ_OBJEKT, currentTyp)) {
        immobilienItem
.setObjektNr(currentItem.getObjektNr());
}
if (isTyp(YBD.Typ_ETAGE, currentTyp)) {
        immobilienItem
.setEtageNr(currentItem.getEtageNr());
}
if (isTyp(YBD.Typ_IMMOBILIE, currentTyp)) {
        immobilienItem
.setImmobilieNr(currentItem.getImmobilieNr());
}
if (isTyp(YBD.Typ_HAUS, currentTyp)) {
        immobilienItem
.setHausNr(currentItem.getHausNr());
}
End file
switch (currentTyp) {
       
case YBD.Typ_GEBAEUDE:
                immobilienItem
.setGebaeudeNr(currentItem.getGebaeudeNr());
               
break;
       
case YBD.Typ_OBJEKT:
                immobilienItem
.setObjektNr(currentItem.getObjektNr());
               
break;
       
case YBD.Typ_ETAGE:
                immobilienItem
.setEtageNr(currentItem.getEtageNr());
               
break;
       
case YBD.Typ_IMMOBILIE:
                immobilienItem
.setImmobilieNr(currentItem.getImmobilieNr());
               
break;
       
case YBD.Typ_HAUS:
                immobilienItem
.setHausNr(currentItem.getHausNr());
               
break;
}

View Diff

1,14c1,16
< if (isTyp(YBD.Typ_GEBAEUDE, currentTyp)) {
<       immobilienItem.setGebaeudeNr(currentItem.getGebaeudeNr());
< }
< if (isTyp(YBD.Typ_OBJEKT, currentTyp)) {
<       immobilienItem.setObjektNr(currentItem.getObjektNr());
< }
< if (isTyp(YBD.Typ_ETAGE, currentTyp)) {
<       immobilienItem.setEtageNr(currentItem.getEtageNr());
< }
< if (isTyp(YBD.Typ_IMMOBILIE, currentTyp)) {
<       immobilienItem.setImmobilieNr(currentItem.getImmobilieNr());
< }
< if (isTyp(YBD.Typ_HAUS, currentTyp)) {
<       immobilienItem.setHausNr(currentItem.getHausNr());
---
> switch (currentTyp) {
>       case YBD.Typ_GEBAEUDE:
>               immobilienItem.setGebaeudeNr(currentItem.getGebaeudeNr());
>               break;
>       case YBD.Typ_OBJEKT:
>               immobilienItem.setObjektNr(currentItem.getObjektNr());
>               break;
>       case YBD.Typ_ETAGE:
>               immobilienItem.setEtageNr(currentItem.getEtageNr());
>               break;
>       case YBD.Typ_IMMOBILIE:
>               immobilienItem.setImmobilieNr(currentItem.getImmobilieNr());
>               break;
>       case YBD.Typ_HAUS:
>               immobilienItem.setHausNr(currentItem.getHausNr());
>               break;

Solutions by @nickandbro:

Unlock 24 remaining solutions by signing in and submitting your own entry
Created by: @tannerli

34 active golfers, 116 entries

Solutions by @nickandbro:
47
#7 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

48
#>8 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

49
#>9 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

50
#>10 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

52
#>12 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

53
#>13 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

54
#>14 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

56
#>16 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

57
#>17 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

58
#>18 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

60
#>20 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

61
#>22 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

62
#>23 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

64
#>24 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

65
#>25 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

67
#>26 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

69
#>27 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

71
#>28 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

77
#>29 - nickGPT / @nickandbro

08/28/2024 at 04:44AM

78
#>30 - nickGPT / @nickandbro

08/28/2024 at 04:44AM

79
#>31 - nickGPT / @nickandbro

08/28/2024 at 04:44AM

83
#>32 - nickGPT / @nickandbro

08/28/2024 at 04:44AM

92
#>33 - nickGPT / @nickandbro

08/28/2024 at 04:44AM

113
#>34 - nickGPT / @nickandbro

08/28/2024 at 04:44AM