Tento web používá soubory cookie. Dalším používáním webu s tímto souhlasíte.
jméno
heslo
přihlásit
zaregistrujte se
zapomněli jste heslo?
Emacs: escape meta alt control shift aneb prece nejsem sam, kdo nepouziva VIM
KKL2401
Tento klub jsem zalozil, aby slouzil zhruba ke stejnym ucelum jako WRAITHova poradna ohledne VIMu na Mageu. Bohuzel narozdil od nej, ktery VIMu opravdu dobre rozumi, ja moc velke znalosti emacsu nemam, nicmene doufam, ze se treba spolecnymi silami tu a tam neceho dobereme.
Máte k tomu co říct? Vložte se do diskuze.
KKL2401 --- 13:21:46 19.9.2005
MRUCH: Diky, to vypada, ze to presne resi ten bod (1), co jsem popisoval, coz mi staci.
MRUCH --- 2:26:55 19.9.2005
aha, no ja s tim problem docela mam..
tak si nekam dej (setq indent-tabs-mode nil) - muzes jako hook na nejakej mod a tak, no sak to znas.. a nebude Ti to (snad..) davat taby nikam
KKL2401 --- 23:33:36 18.9.2005
MRUCH: Ted si nejsem uplne presne jistej, jestli Ti spravne rozumim. Mne prijde, ze dosahnout toho, ze to budou vzdy presne 4 znaky problem neni, mne to tak indentuje, proste prvni level je o 4, druhej o 8, treti o dvanact. Bohuzel misto tech mezer to tam hazi (level * 4) / 8 tabulatoru a k tomu jenom (level * 4) % 8 mezer. Jsem si skoro jistej (byt bych to musel vyzkouset), ze kdybych si c-basic-offset nastavil na 3, tak proste prvni uroven bude mit 3 mezery, druha sest a treti jeden tabulator plus jednu mezeru.
Mne to teda aspon pripada tak, jako kdyby emacs (resp. patricny mod) zjistil, kde se syntakticky nachazim, podle toho si spocital uroven, tu prenasobil poctem pozadovanych mezer, nacez udelal to vyse zminovane celociselne deleni a kazdych celych osm mezer prevedl na tabulator. Cili bych skoro rek, ze by stacilo nalezt ten vypocet tohoto a zrusit ho (to pro dosazeni prvniho chovani). Pro dosazeni druheho chovani by bylo potreba nejenom modifikovat ten vypocet, ale jeste nekde emacsu rict, ze kdyz narazi na znak tabulator, tak misto nej ma virtualne zobrazit osm mezer (ovsem ze pak smazani v tom miste neznamena umazani jedne takove mezery, ale celeho toho tabulatoru, navic ze i pohyb o jeden znak do prava musi byt vlastne pohyb o osm znaku doprava) - tohle by mohlo byt slozitejsi, pokud to tam uz neni nekde naprogramovane a jenom to neceka, az clovek nekde kdovikde v customizaci najde, ktera volba to voli.
MRUCH --- 23:10:17 18.9.2005
KKL2401: to je dobra otazka toto ;))
co to je kazda uroven? emacs ma (treba c mod a vsechny derived mody) strasne moc syntaktickych symbolu (podle toho kde se zrovna nachazis v kodu, tak indentuje), takze dosahnout presne toho, ze to budou vzdy 4 znaky je dost problem (nekolikaradkovej if, zanoreny fce - sscanf(fgets(.. a tak dale)
viz [ MRUCH @ Emacs: escape meta alt control shift aneb prece nejsem sam, kdo nepouziva VIM ] mozna trosku pomuze.

ad jen mezery - problem je, ze ruzny veci se daji indentovat ruzne - offset muzes nastavit i jako polovinu c-basic-offset.. takze asi vypnout indent-tabs-mode a mas to ;)
KKL2401 --- 22:32:06 18.9.2005
ANT_39: To bych i veril. Ale ja indentovat sam nechci, mne vyhovuje, ze to indentuje samo, trochu mi vadi jenom indentace ve switch() {}, ale ne tak, aby se to nedalo prezit. Jenom bych proste byl rad, aby se pouzivaly bud jenom mezery, nebo jenom tabulatory a nikoliv jejich kombinace.
ANT_39 --- 22:20:46 18.9.2005
KKL2401: no ja to delal prave proto abych si mohl sam indentovat :) neveril bys jaky je to v emacsu problem :)
KKL2401 --- 22:14:10 18.9.2005
Hm, tak tohle se mi jako reseni nelibi, indentovat si sam nechci. To uz spis preziju to soucasny chovani.
Ale je mi divny, ze by tohle neslo. Nerikam, ze musi jit oboji, ale aspon jedno by mohlo (treba to druhe je u editoru pomerne obvykle, vimisti to pokud vim pouzivaj furt).
ANT_39 --- 21:45:10 18.9.2005
Jinak obecne reseni neznam, a nemyslim ze existuje. Co jsem kuchal lua mode tak tam se to vsechno resi "samo", a emacs do toho nema moc co mluvit. Takze je na autorovi kazdeho modu jak udela nastaveni nastavitelne...
ANT_39 --- 21:44:15 18.9.2005
KKL2401: Tohle jsem resil celkem nedavno. V cc modu jsem to vyresil ke sve spokojenosti tak, ze tab je proste tab, backspace maze cely tab, takze si zarovnavam rucne a jsem zcela spokojen. Musel jsem prolezt nastaveni cc modu a vypnout veskere automatismy ktere mi to cpe, a pak navic jeste po spusteni cc modu (v nejakem tom start-hooku ci jak tomu rikaji) rucne odbindovat elektricke klavesy (napr. slozenice). Pokud ti to konkretne v cc modu k necemu bude, muzu ti relevantni sekce ze sveho .emacs postnout.
KKL2401 --- 21:22:16 18.9.2005
Nevite, jak dosahnout v emacsu jednoho z techto dvou chovani (hlavne mi jde o programatorske mody)?
Bud:
(1) Indentuje se na kazde urovni o ctyri mezery (to jeste umim - c-basic-offset), nicmene hlavne pri indentaci se nikdy nepouzije znak tab (ted mi to vzdy kazdejch osm po sobe jdoucich mezer nahradi tabulatorem, takze prvni uroven je odsazena o ctyri mezery, druha o jeden tab, treti o jeden tab plus ctyri mezery, atd.).
nebo:
(2) Indentuje se na kazde urovni o tab, pricemz emacs ale tab nezobrazuje jako tab, ale jako ctyri mezery.

Kdybych to popsal nejak zmatene, tak kdyztak to nejak upresnim.