VIM - didinam ir mažinam skaičius

Kaip „kietai“ didinti ir mažinti skaičius su VIM ir vienu klaviatūros paspaudimu.


VIM - didinam ir mažinam skaičius


Kaip „kietai“ didinti ir mažinti skaičius su VIM ir vienu klaviatūros paspaudimu.


Ne kartą teko matyti kaip programuotojai su VIM redaktoriumi keisdami kode masyvus ar kitokius duomenis ranka didindavo/mažindavo skaičius. Nors, tikriausiai, praktika reta, tačiau tą daryti tikrai tenka.

Žinoma, nieko blogo viską daryti ranka, bet tikriausiai kaip kiekvienas save gerbiantis programuotojas - pirmiausiai pamąstysite kaip tą padaryti kuo mažiau paspaudimų. Tad tiems, kas naudojasi VIM redaktoriumi programuojant, tikrai pravers keli patarimai.

Pirmiausiai pradėkime nuo pavyzdinės situacijos. Tarkime turime tokį masyvą:

$masyvas[1] = $vardas;
$masyvas[2] = $pavarde;
$masyvas[3] = $salis;
$masyvas[4] = $miestas;
$masyvas[5] = $adresas;

Ir norime į pirmąjį elementą įkišti pilną vardą ir pavardę, o vėliau, kad viskas būtų kaip buvę ($masyvas[1] = $vardas . TARPAS . $pavarde).

Mano VIM redaktorius panaudotas rašant straipsnį
Mano VIM redaktorius panaudotas rašant straipsnį

Mums padės VIM klaviatūros spartieji klavišai. Norėdami padidinti skaičiuką (nesvarbu iš kelių simbolių jis yra) spausime CTRL+a arba CTRL+x skaičiaus reikšmės sumažinimui. Trumpai tariant:

užėjus ant skaičiaus 321 ir paspaudus CTRL+a gausime skaičių 322
užėjus ant skaičiaus 321 ir paspaudus CTRL+x gausime skaičių 320

Viską atliekame normal režime.

Taigi, norint padidinti/sumažinti visus ar dalį viršuje rašyto masyvo elementų raktus, pirmiausiai atsistosime ant skaičiaus 1 ir pasinaudosime makro komanda:

qq       # pradedame įrašinėti makro komandą
CTRL+a   # padidiname skaičių
j        # žengiame žemiau masyvo
q        # išjungiame makro komandą

Įsirašius makro komandą, galime pavykdyti ją norimą kiekį kartų. Kadangi masyve yra penkios eilutės, o vieną jau pakeitėme, užteks parašyti:

4@q      # Vykdys makro komandą 4 kartus

Ir rezultatas mūsų bus toks:

$masyvas[2] = $vardas;
$masyvas[3] = $pavarde;
$masyvas[4] = $salis;
$masyvas[5] = $miestas;
$masyvas[6] = $adresas;
$masyvas[1] = $vardas . TARPAS . $pavarde;  # žiūrėti aukščiau

Tikiuosi pravers :)