Keresés

Új hozzászólás Aktív témák

  • doc

    nagyúr

    válasz Sk8erPeter #5021 üzenetére

    a vim un. modalis editor, vagyis ket uzemmodja van: a 'normal' es az 'insert' mod
    az elobbinel a lenyomott billentyuk parancskent mukodnek, tehat ha pl. ketszer megnyomod a d billentyut, akkor kitorli azt a sort, amin a kurzor all
    insert modba eleg sokfelekeppen at lehet kerulni, pl. a c-vel es s-sel kezdodo parancsok vegrehajtas utan insert modba raknak, de lehet kozvetlenul is pl. az i paranccsal (vagyis az i billentyu megnyomasaval) a kurzor ele irni (ez ugyanaz mintha egy hagyomanyos editorban siman elkezdesz gepelni) vagy pl. az a parancs a kurzor utanra rak, ahova ugyanugy gepelhetsz (tehat ez a jobbra nyil majd gepelesnek felel meg), de vannak picivel trukkosebbek is, nagyon gyakran hasznalom pl. az I (vagyis nagy i, illetve SHIFT+i) parancsot, ami az adott sor legelejere viszi a kurzort es insert modba rak, vagy ugyanez az A csak a sor vegevel, de ott van pl. az o, ami az aktualis sor ala beszur egy ujat, az elejere viszi a kurzort es insert modba tesz (ez hagyomanyos editornal az END, ENTER -nek felel meg)
    insert modbol visszaterni normalba az ESC vagy a CTRL-C billentyukkel lehet

    a kezdok el szoktak kovetni azt a hibat, hogy az ido nagy reszet insert modban toltik, es csak a parancsok kiadasahoz mennek vissza normal modba aztan egybol vissza. ennel sokkal praktikusabb csak akkor insert modba kapcsolni, amikor tenyleg az kell

    (egyebkent insert modbol is barmikor kiadhatoak a normal parancsok ha elotte nyomsz egy CTRL-O kombinaciot, ilyenkor a parancs vegrehajtasa utan megint insert modban vagy)

    amiket leirtal, azok teljesen kozonseges roviditesek, vimben annyit hozol letre amennyi jol esik, nalam is be van allitva pl. az hogy a #i-bol #include-ot csinaljon, de kivetel nelkul az osszes altalad felsorolt rovidites is nagyon egyszeruen letrehozhato
    ehhez un. parancs modba kell menni (na ezt nem is mondtam eddig) amihez a : billentyut kell lenyomni, ilyenkor kapsz lent egy sort ahova gepelhetsz, pl. az elso rovidites:
    :abbrev cw Console.WriteLine();

    na lassan ossze is foglaljuk a vim legeslegalapvetobb funkcioit :D

    ha mar itt tartunk, megemlitenem a makrozast, ami valami egeszen dobbenetes hatekonysagot tesz lehetove
    nagyon sokszor kell pl. tobb soron egy adott muveletet vegrehajtani
    tegyuk fel hogy van mondjuk egy .h file-od, felsorolva X db fuggvenydeklaracioval, es ezeknek akarod a torzset megcsinalni
    pl:

    class akarmi
    {
    int getValami() const;
    void setValami(int ertek);
    bool init();
    };

    ekkor csak annyi dolgot, hogy megnyitod a .cpp file-t, pl. a :vsplit akarmi.cpp paranccsal, amivel az ablak fuggolegesen kette lesz osztva, baloldalon a cpp, jobb oldalon a h file-lal
    kijelolod a harom fuggvenydeklaraciot, kimasolod vagolapra, atmesz a masik ablakba, ott beilleszted
    (pl. a legelso, a getValami soraban allva: Vjjy aztan CTRL-WW a masik ablakra valtashoz, itt p a beillesztes)
    ezek utan elinditasz egy makrorogzitest. az angol ABC osszes betujere rakhatsz egy-egy makrot, mivel a rogzites parancsa a q, en altalaban a q makrot szoktam hasznalni amolyan gyors-makrokent
    tehat elinditod a makrorogzitest a qq paranccsal (a masodik q betu a makro valasztott neve)
    majd megcsinalod a fuggvenytorzset a kovetkezo paranccsal:
    <<wiakarmi::<ESC>A<BACKSPACE><ENTER>{<ENTER>}<ESC>j
    majd leallitod a makrorogzitest a q paranccsal. ilyenkor a q makroban mar benne van a fuggvenytorzs letrehozasa ahhoz a sorhoz, amin eppen allsz
    vagyis csak annyi a dolgod hogy ketszer futtatod a makrot, es a maradek ket fuggveny is letrejon, szepen az osztalynevet elerakva, ahogy azt kell: 2@q. a parancsok ele szamot irva annyiszor hajtja vegre, a @ a makrofuttatas, a q pedig a makro neve
    nyilvan ha nem 2 sorod van meg, hanem 60, akkor is ugyanigy mukodik, csak akkor 60@q lesz a parancs, es egyetlen pillanat alatt kesz is a 60 fuggvenyed :) es mindehhez nem kellett elmozditani egyik csuklodat sem, teljesen pihenteto az egesz :)

    [ Szerkesztve ]

Új hozzászólás Aktív témák