V diskuzi k nekteremu z minulych dilu o Vimu se nekdo ptal po uzposobeni klavesnice ve Vimu tak, aby slo psat cesky v systemu bez ceskych klavesnic. (Pripevek pisu k tomuto pokracovani, protoze mam pocit, ze k tem predchozim se jiz nikdo vracet nebude.)
Protoze jsem se potykal s podobnym problem a neni mozno vzdy nutit administratora nainstalovat vse potrebne, vytvoril jsem si dve konfigurace pro Vim: jedna mapuje sekvence v Insert rezimu tak, aby odpovidaly ceske klavesnici (kodovani odpovida ISO-8859-2), druha pak mapovani zrusi, tj. vrati vse do puvodniho stavu. Vse bylo udelano relativne v rychlosti, ale funkcnost je myslim dobra - staci obe konfigurace namapovat na vhodne funkcni klavesy.
A kde lze tyto soubory najit?
http://ise.wiwi.hu-berlin.de/~cizek/archives/
S pozdravem
Pavel Cizek
Chtel bych se zeptat, zda je mozne nejaky jiz hotovy napr. HTML dokument jednoduse automaticky pomoci vim preformatovat tak, aby tagy mely patricne odsazeni atd. Dale by me zejimalo, jestli by nekdo nemel skript (nebo neporadil, jak ho napsat), ktery by doplnil za pismena typu a, k atd. v HTML nedelitelne mezery. Dekuji moc.
Pokusím se to napsat z hlavy, takže to asi nebude úplně fungovat :-) Regulární skripty pro Perl (nebo možná i pro awk):
Úplně základní, který náhradu provede všude:
s/(a|v|k|další předložky a spojky)(\s+?)(\w)/$1 $3/ig
Jenom v sekci <body>
s/<body>.*(a|v|k|další předložky a spojky)(\s+?)(\w)/$1 $3/ig
Jenom v sekci <body>, vně tagů (za textem musí být alespoň jeden tag, např. </body>)
s/<body>.*(a|v|k|další předložky a spojky)(\s+?)(\w[^>]*<)/$1 $3/ig
A teď by to chtělo ještě to nějak zoptimalizovat a upravit, ale to už neudělám z hlavy... Třeba je zbytečné, aby to pokaždé procházelo text od <body>, regulárná výryzy si umí zapamatovat pozici posledního výskytu, takže to by asi chtělo využít...
Chtel bych se zeptat, zda je mozne nejaky jiz hotovy napr. HTML dokument jednoduse automaticky pomoci vim preformatovat tak, aby tagy mely patricne odsazeni atd. Dale by me zejimalo, jestli by nekdo nemel skript (nebo neporadil, jak ho napsat), ktery by doplnil za pismena typu a, k atd. v HTML nedelitelne mezery. Dekuji moc.
Na ladeni a programovani pouzivam VIM skoro vyhradne. Priznam se, ze nevim, jak to ladeni funguje v emacsu, ale pokud je to fakt pouzitelne, nedalo by se to treba navrhnout aspon do VIM 6.0?
Dalsi potize mam trochu s doplnovanim funkci/promennych - obcas nekde neco prepisu, upravim nebo pridam zdrojak. Nemate nekdo udelana treba nejaka makra, ktera trochu zlidstuji praci header soubory, ctags (co kdyz nekam pripisu fci -- to mam hned ctagovat?), pripadne s nastavenim path a prikazy ]i ]I ...nejak v tom nemam grif, potreboval bych si to trochu zefektivnit -- co takhle jeste dalsi superdil o VIM? ;)
V minulém díle byla v ukázkovém souboru source html.vim uvedena konstrukce na uzavírání tagů; zde je moje možná o trochu dokolajší verze, která funguje i pro jednopísmenné značky:
z mého .vimrc (na jeden řádek):
au BufNewFile,BufRead *.html,*.htm,*.?html,*.php* imap ,. <Esc>mtF<ye`tpa><Esc>F<a/<Esc>hi
Mezi písmeny "e" a "t" je znak "levého" apostrofu.
Tato mapa uloží koncový tag na pozici kde byla aktivována. Funguje to pouze pro počáteční tag na stejném řádku, ale pomocí revesního hledání by se dalo předělat i pro rozsáhlejší bloky textu.
Nevíte někdo jak ve Vim realizovat automatické číslování odstavců? Tedy tu stejnou funkci jakou nabízí např. "Microsoft Word 97". Mám na mysli následující:
1.
1.1
1.2
1.2.1
2.
2.1
2.1.1
atd.
Nemuselo by to být ani on-line při psaní. Stačil by i nějaký jednorázový dávkový systém. Hlavně abych to nemusel dělat pořád ručně.
Pouzivam pro GVim a Vim stejny .vimrc, ale editory se chovaji odlisne. Napr. <Shift-vlevo> v GVimu skace po slovech vlevo, ale u Vimu skace po pismenech. Navic ve Vimu nefunguje ":behave mswin", ktere aktivuje select mode podobny MSWin. Toto take v GVimu pracuje.
Proc se Vim a GVim lisi? Potreboval bych vyse zminovane vlastnosti mit aktivivany i ve Vimu pro praci v terminalu.
Dekuji a omlouvam se za dotaz, ktery je off-topic.