Mam takovy trochu OT problem. Obcas jsem nucen pracovat v billovych okynkach, a aby byla prace trochu snesitelnejsi, pouzivam jako standardni editor vim, resp. gvim. Mam ho naasociovan na potrebne pripony i zaktivovan v menu pres prave tlacitko. Kdyz otevru libovolny soubor pres menu, je vse O.K. Problem nastava v pripade, ze se dvojklikem pokusim otevrit nejaky soubor, nebo se o to pokusi nejaky program (napr. po instalaci chce otevrit readme.txt), pricemz cesta k souboru obsahuje mezeru v ceste (napr. c:\Program Files\JavaSoft\jre\1.3\README.txt). Editor se sice otevre, ale text nikde - misto plne cesty k souboru se ve spodnim radku objevi pouze cosi jako c:\Program. Nevite nekdo, jestli se s tim da neco delat?
Myslim, ze jedno reseni je v tom, nepouzivat dlouhe nazvy, napr. FAR umi spoustet prikaz a jako parametr zadat jmeno souboru dlouhe nebo kratke. Pokud je ale asociace udelana pro Pruzkumnik nebo podobny srandicky a ta asociace je v registru, nepomohlo by dat do registru neco jako command=gvim "%1" misto tusim ted tam je gvim %1? Ale nejsem Windows guru, takze to neni na 100%, ale zkusil by si hrat s tema uvozovkama:)
Vim pouzivam spolu s muttem pro psani mailu. Nektere mailery (zpravidla OE...) posilaji velice dlouhy text jakozto jeden radek, coz je dosti neprijemne pri reply, kdy je mnoho textu na jednom radku. Existuje nejaky neprilis slozity postup jak tento radek preformatovat? Kdyby se navic na zacatku kazdeho radku objevilo "vetsitko", nemelo by to chybu...
Keď sa tu už rieši nastavenie tabulátorov.
Zatiaľ sa mi nepodarilo nastaviť ViM tak, aby pri kombinácii so smartindent sa na začiatku riadku nedávali tabulátory, ale medzery, ale zas aby som mohol tam kam ja chcem vložiť tabulátor a ten sa nezmenil na medzery.
Vie niekto riešenie?
Kdyz jsem ve svem editoru vim zadal sy on (zkracena verze prikazu syntax on), odpovedel mi neco jako function not implemented. Podobne jsem ke zvyraznovani nedonutil ani emacs. Verze vim je pomerne nova, tusim 5.6. Moje verze redhatu je pomerne osekana - nechybi mi nektery balicek? Mohl by mi, prosim, autor clanku naznacit, v cem by mohl byt problem? Dekuji predem.
U RedHatu je to prave v tech baliccich (pokud to opravdu nepoustite jako vi).
Zaklad je vim-common, dalsi jsou vim-X11, vim-enhanced, vim-minimal (v podstate jen vi).
vim-common uz by mel umet prave syntax highlighting a v podstate vsechny standardni operace.
vim-enhanced obsahuje vestavene interpretry skriptovacich jazyku pouzitelnych v makrech (perl, python), apod.
Na zaver vim-X11 - necekane verze gvim.
Rozvrzeni balicku je takove zhruba od verze 5.0 (driv si to nepamatuji)
HOWGH!
Potrebujete vim-enhanced. Balik vim-minimal je maximalne ostrouhana verze vim,
ktera je urcena pro zachranovani systemu v krizovych situacich. Je hrube optimalizovana na pamet, takze je kompilovana bez naproste vetsiny vimovskych vymozenosti. Kdyz pustite jen vi, tak nebehne prave tohle. Vim kompilovane s barvickami a spoustou dalsich veci spustite prikazem vim (resp. gvim). Jo a v emacsu urcite pomuze M-x global-font-lock-mode.
Mam nastaveno noexpandtab, ale po :retab se mi mezery na zacatku radku na tabulatory neprevedou. (Smaozrejme mam tabstop=2 a chci, aby se mi prevedly radky s nejmene dvema mezerama). Co delam spatne? Uznavam, ze staci :%s/^\(^I*\)<mezera><mezera>/\1^I/g
ale kdyz uz o tom autor napsal, a ono to nefunguje...
Přečtěte si prosím ještě dvakrát :h :retab (proč dvakrát? i když je to jasné, taky jsem to pochopil až napotřetí ;-)
:retab nahrazuje pouze řetězce, KTERÉ UŽ NĚJAKÝ TABULÁTOR OBSAHUJÍ. Použijete-li :retab!, převedou se mezery na tabuláory všude, ale to všude znamená i uprostřed řádku, což není vždycky to, co člověk chce.
Problém je v tom, že
1. ^I není něco jako tabulátor, ale přesně tabulátor; namapujete-li na něco ^I, bude totéž dělat i tabulátor, nevím jestli přesně tohle chcete
2. tabulátor je whitespace a tudíž se musí stejně jako jiné obskurnosti před-... hm, neumím to česky, ale musíte před něj dát ^V, přesněji tři ^V (viz :h using_CTRL-V a :h :map-special-keys), takže stisknete ^V^V^V^I, napíše se ^V^I a namapuje se ^I
Nepovažuji mapování Ctrl-I za šťastný nápad. Obecně vřele nedoporučuji mapovat jakékoli kombinace Ctrl-cosi, Alt-cosi apod. Dřív jsem to tak dělával a vždy jsem musel zkoumat, jaké funkce má na ty kombinace navázány nová verze Vimu a co s tím dělat. Nakonec jsem přešel na mapování nespeciálních kláves (sekvence začínající čárkou). Je to sice neobvyklé, ale jsem s tím navýsost spokojen. Podrobný popis bude ve třetím dílu.
Mapování ^I není dobrý nápad, protoľe je to tabulátor. Ale pokud vím, ľe tabulátor nebudu pouľívat, tak proč ne? To samé platí platí v drobné obměně pro ostatní Ctrl- kombinace. Dneska uľ jsou obsazené prakticky vąechny. Takľe při přemapování vľdycky něco přepíąete a je na vaąem rozhodnutí, jestli tu původní věc potřebujete nebo ne.
Pokud se jedná o mapování Alt-, tak tam je to mnohem horąí. Vim totiľ povaľuje Alt- za totéľ, jako nastavení 8. bitu, takľe výsledkem je nějaký znak z horní poloviny ASCII. Namapujete-li pak Alt-a na něco, bude totéľ dělat i á ('a'|0x80). Bohuľel se mi nepodařilo přesvědčit Brama, ľe je to pitomost, takľe Alt- kombinace jsou nepouľiltelné pro soubory, kde chcete psát česky.
Mám patch, který to *neuvěřitelně ąpinavým* způsobem spraví pro Gtk GUI, takľe ho ani raději nikomu nepoąlu. Na pořadnou opravu teď nemám čas, takľe závěr: Alt- [zatím] raději nemapovat.
Pokud jde o mapování nespeciálních sekvencí, tak s tím mám zase ąpatné zkuąenosti já. Asi si vľdycky vyberu nějaké nevhodné, ale pokaľdé jsem pak někde potřeboval psát právě ji...
Jinak pokud jde o italiku v HTML, tak tohle je podle mne zbytečné mapovat nějak speciálně. Stačí mít někde namapovanou funkci doplňující párový tag (já to mám na Ctrl-q, které tak jako tak duplikuje Ctrl-v) a < na <>[doleva], takľe píąu <I[Ctrl-q] a je to a funguje to universálně.
Jaktoze mam xakru ve svym prispevku spatne cestinu?
Psal jsem to v linksu v putty (se zapnutym prevodem 1250/8859-2) z Win2000 (nechteje vedet, proc) a vsechno se zobrazilo dobre, ale ted vidim, ze jsou z, s, a t spatne (takze tohle pisu radeji bez diakritiky).
Vi nekdo, jak se to mohlo stat?
Sekvence začínající čárkou budou použitelné v tom režimu, do kterého si je namapujete. Já je mám ve vkládacím. Takže třeba tu kurzívu v HTML (ale i v LaTeXu) píši jako ,ee (což jsou jen dvě klávesy, yeti jich ke stejnému účelu mačká pět - dva přeřazovače a tři různé klávesy).
Připadá mi, že z hlediska rychlosti psaní je celkem jedno, jestli na začátku stisknu (a držím) Ctrl nebo čárku. Je to jen záležitost zvyku či konvencí a ta čárka mi podle mého soudu dává větší svobodu. Problém s psaním speciálních sekvencí je snadno řešitelný (stačí počkat, až vyprší timeout, nebo ji přerušit <Esc>a či podobně). Pokud si zvolíte sekvence, které jsou velmi vzácné (tvrdím, že ty mé jsou), prakticky to nebolí.
Tvrzení "vím, že to nebudu potřebovat" považuji za celkem odvážné. V praxi jsem ověřil jeho neplatnost ;-)
Máte pravud, že ,ee je samozřejmě rychlejší.
Je potřeba zvolit vhodný kompromis mezi málo universálními mappingy, které mi ovšem ušetří práci pouze částečně, a obrovskou spoustou speciálních, které si ovšem nezapamatuji.
Já jsem v tomto případě dal přednost spíš universálnosti, protože pak můžu psát všechno
Zdravim,
dekuji za pekny clanek ("no dobre, od te doby cu tu jsou q nemusim dekovat ;)))", a chtel bych se zeptat na problem se $subj. On sice vim (z rh7.1, 6.0 neco) syntaxy zvlada ale jen do te doby, nez napisu v html $mujobjekt->neco();
od te chvile je veksera dalsi synatxe az do ?> znicena. Nemate na to nejaky recept?
Uhh, uz to mam, ja zapomel ze phtml neni asociaovane jako php na php syntax HL ;)
Tak tedy zbyude jen to podekovani...