Ja mam pocit, ze jsem na vim.sf.net videl neco hodne podobneho... ale jsou tam tedka problemy s databazi, takze se nepodivam (taky to mohlo byt ve vim maillistu).
Jinak, pouzivam neco ekvivaletniho, pro ukazani moznych variant odlisnosti: pro vyber sablony nepouzivam %:e, ale obsah promenne filetype (coz je malicko universalnejsi), a soubory nenacitam, ale sourcuju (typicky obsahuji i <obsah dokumentu>., ale daj se tam davat i jine prikazy, takze nepotrebuju predem danou mnozinu substituci...). Cele to je (bez kontroly implementace autcocommands) one-liner:
au BufNewFile * execute "runtime template/" . &filetype . ".vim"
(ale neni tu vyber z nekolika ruznych templatu). Samozrejme je jen otazka pristupu, zda pouzivat prikazy vimu nebo preddefinovane substituce...
nektery casto pouzivane konstanty bych nahradil promnenymi, definovanymi hned na zacatku. napriklad ne kazdymu bude vyhovovat adresar ~/.vim/skeletens, navic muze nekdo pouzit tento nastroj jako podprogram ktery by bral sablony z nekolika ruznych adresaru, na zaklade externich informaci.
napr.: kdyz bude ctvrtek a vim bude spusten z vipw, pouzije se /root/.vim/vipw.ctvrtek/*.passwd
pres promenou si muzu se zdrojovou cestou hrat jak chci, konstantu musim prepsat na nekolika mistech a ani potom si nemuzu byt 100% jist ze se na konstantu nevaze nejakej chytak :)
... protoze jsem nedostal zadnou odpoved tak bych to dnes zkusil znovu:
Lze ve Vim dosahnou automatickeho cislovani odstavcu?
Tedy aby vysledny dokument vypadal napr. takto:
1. nejaky text ...
1.1 nejaky text ...
1.2 nejaky text ...
1.3 nejaky text ...
1.3.1 nejaky text ...
2. nejaky text ...
2.1 nejaky text ...
2.2 nejaky text ...
3. nejaky text ...
4. nejaky text ...
Asi to nejak pujde... (jen to naprogramovat :-), nebo se podivat do uz zminovane banky skriptu http://vim.sf.net). Mozna by mohl pro zacatek pomoci plugin "Increment", ktery dela to, ze cislice oznacene ve sloupcovem bloku (CTRL+V) nahradi posloupnosti cisel. Increment se da sehnat na vyse zminene adrese.
Ja si myslim, ze takova vlastnost editoru neni zase az tak od veci. I kdyz existuje TeX a jine vymozenosti, porad se muze stat, ze chcete psat nejaky plain ASCII dokument (nejake README apod...). Proc se potom nutit do nejakeho zbytecneho cvakani na klavesnici (pri psani cisel odstavcu), kdyz by je cislovat mohl umet samotny editor?
uzitecne by to bylo, jen se v plain textovem editoru neda moc dobre zaridit konzistence cislovani pri presunovani nebo pridavani odstavcu nekam doprostred. Urcite se da vymyslet neco, co by to precislovani udelalo, ale aby to neprecislovalo navic, neco co se menit nema, muselo by se to cislovani nejak oznacit --> a jsme prakticky zase u TeXu nebo DocBooku nebo neceho podobneho.
Ale kazdopadne diky za pekny clanek, zvlast za sablonu pro javu, tu co nejdriv pouziju!
Predpoklad: mam radek typu
1.2.3 Nejaky text
(n.b., na konci neni tecka - v zadani jsou obe varianty, tady pro jednoznacnost takto). Nasledujici sekvence pridaji radek uvedeneho typu a prejdou do insert modu (predpoklad: jsme na radku s 1.2.3 a v normal modu). Mapovani na klavesy a rozsireni jako cviceni.
a) Pridej radek 1.2.4:
0yiW (nacti kod zacatku radky)
o<Esc>P<C-A> (zkopiruj a posledni cifru zvetsi oj edna)
a<space> (prejdi do insert modu a vynech mezeru)
b) Vytvor radek typu 1.3: (po provedeni a), tedy mame na radku 1.2.4<space> a jsme v insert modu - predpokladam mapovani a) napr. na <Enter>)
<esc>F. (smaz vse zpet k posledni tecce)
h<C-A> (presun na cislo a zvetsi o jedna)
A (insert mod)
Jeste neco je k tomu potreba?
Já jsem zatím řešil uvedený problém použitím konstrukce ze staršího článku o vim na rootu. (Tehle článek je ale moc pěkný a řešení komplexnější.) Ale mám tenhle problém: Založím-li si tak nový soubor, mám na prvním řádku jenom konec řádku, na druhém je začátek. Je to tak i tady (zatím jsem neměl možnost vyzkoušet)? Netušíte, co s tím?
Pouzivate :r nebo :0r? (ono je to skoro jedno, v jednom pripade je prazdny radek na zacatku, v druhem na konci... i kdyz to druhe vadi mene).
(takze tady to tak neni, protoze se pouziva 0r, a navic se prazdny radek maze)
Mimochodem, dalsi mozna trivialni zjednoduseni scriptu clanku: misto exe "$d" staci $d, misto normal 1G staci 1
Velmi pekny clanok, probelm je pekne podany a vysvetleny. Aj ked vyuzivam moznosti VIMu tak na 10%, hned si vyrobim dalsie sablonky pre rozne typy LaTeX dokumentov. S takychto clankov sa da dost naucit, hlavne ked je problem podany kompaktne. Je vidiet ze autor stravil par hodin nad manualmi a pouzivanim VIMu. Naozaj prinos. Dakujem.