• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    KKL2401Emacs: escape meta alt control shift aneb prece nejsem sam, kdo nepouziva VIM
    GLIN
    GLIN --- ---
    Jinak na javu, co jsem ted psal mensi projekt jsem se rozhodl, ze prestanu ze 100% manii emacs na vsechno a pouzil jsem Eclipse, a zatim toho teda nelituju. Je tam volba klavesnice emacs-like, takze takova ta zakladni navigace ala C-f, M-f,..., M-d, M-Backspace, C-s, C-r,.... tam funguje (i kdyz to vyhledavani nezviraznuje vsechny vyskyty a undo je tam na F9, coz me vadi asi nejvic..ale jde to prenastavit).

    A proc jsem se tak rozhodl(dlouho odolavam vsemu moznemu) zrovna u Javy? Protoze programovani v jave je takove, ze se identifikatory nezkracujou..to je vypisuji cely "DynamicGameObject", a bez toho dokoncovani bych fakt psal dosti neefektivne (ja vim, kdyz pises program, tak to dodrzovat nemusis, ale zaprve vsechny knihovny jsou tak psany..a za druhe myslim, ze by byla prasarna psat v jave jako v Ccku :) )

    Navic takovy ty veci jako debug na jednu klavesu s vypisovanim call stacku a promennejch apod. je docela komfort... a to podtrhavani kodu je tam taky spolehlivejsi nez ten flymake a umi i naky lehky samoopravy.......i kdyz to jdee ani j-emacs jsem nezkousel, takze nemuzu porovnavat... kdyztak se pochlub, jak se ti s nima vede, nebo pro co jsi se nakonec rozhodl.
    KKL2401
    KKL2401 --- ---
    GLIN: No ja jsem asi ty veci, o kterych hovoris, nainstaloval, ponevadz to JDEE psalo v dokumentaci, ze je mam mit. Jedna z nich mi dela takovou podivnou vec, ze u souboru urcitych typu (napriklad ten Make file, ale i nejake jine) si to zabere uplne vrchni radek a tam se to cosi snazi zobrazovat (zrejme kontext, asi treba v jake je clovek funkci nebo tak, kdyz pise zdrojak). Kazdopadne to funguje nejak podivne a vic me to stve nez cokoliv jinyho.
    Ale predevsim jsem se zatim dostal jenom k nainstalovani, nikoliv k procteni dokumentace a nakonfigurovani, takze nechci predcasne soudit. Kazdopadne kdyz dam System.out. a necham ho doplnit, tak to podle me funguje spravne, ale to je asi jediny, co se mi podarilo rozbehnout, aby doplnil, cokoliv jineho nejak nebezi - obcas zahlasi, ze potrebuje neco naimportovat a skutecne tam na zacatek nejakej import prida, ale i tak to nefunguje, navic tam ten import obcas prida dvakrat (a to i v pripade, ze uz tam jednou je, takze je tam pak i trikrat). Ale rikam, az si o tom budu mit cas trochu neco precist, treba to bude lepsi.
    Ten flymake vypada zajimave.
    GLIN
    GLIN --- ---
    Zdar emacsaci, sem taky jeden z vas.
    KKL2401:
    Podivej se na Emacs Code Browser
    http://cedet.sourceforge.net/
    a
    http://ecb.sourceforge.net/

    (Stejne to pravdepodobne bude potreba na rozchozeni toho JDEE.)
    Dobry je to ECB na rychlou navigaci v kodu (zobrazuje stromove objekty a jejich metody atd).
    Dale pak k tomu samodoplnovani: Ten intellisense screenshot vypada sice velmi pekne, ale bohuzel po dlouhem rozchozovani jsem zjisitl, ze to sice umi doplnovat, ale jen slovo, ktery pises, a nikoliv metody za teckou... a ze by to nak dobre bralo kontex (jako doplnovat jen to co je logicky na danem miste kde jsi), to taky moc ne...ale mozna to jde jeste nastavit...moc jsem se v tom nehrabal.

    Ja ted programoval takovej..rekneme stredni.. projekt v C++ a tohle mi dost pomohlo (ty utility co na tech strankach jsou. (a je tam i to JDEE, ale v jave jsem zatim v emacsu nedelal)

    Dalsi utilitka, ktera mi pomohla je flymake:
    http://flymake.sourceforge.net/
    Dokaze pri psani kodu zvyraznovat chyby, ktery si udelal (funguje to tak, ze se na pozadi spusti make a jeho vystup se zpatky aplikuje na kod, kterej pises. Jde si taky nastavit klavesy, aby to skakalo po tech chybach (ala dalsi chyba, predchozi chyba)
    Aby to chodilo, tak musis do Makefilu jeste pripsat neco jako:
    check-syntax:
    $(CC) -o nul -S ${CHK_SOURCES} $(CFLAGS)
    (ten make se vlastne spousti s parametrem check-syntax)
    Samozrejme to ze se ti to kompiluje na pozadi taky trochu spomaluje.
    KKL2401
    KKL2401 --- ---
    DAVE_PAGE: To vypada dobre. Az ja se taky dokopu to tu prolezt a obcas nejaky ty odkazy hodit na home…
    ANT_39: Ano, i jako soucast Makefile me to napadlo a zkousel jsem to. Spis mi slo o to, co kdo pouziva, jestli tam nenajdu neco, co uz nekdo vymyslel a mne by to absolutne vyhovovalo.
    DAVE_PAGE
    DAVE_PAGE --- ---
    DAVE_PAGE
    DAVE_PAGE --- ---
    KKL2401: konecne se zde neco deje ;-)) Ale ohledne te podpory pro Javu...tak zkus tohle http://jdee.sunsite.dk/ ... nevim co vse to umi. ale stranky napovidaji ledacos.... budu to muset taky vyzkouset.
    ANT_39
    ANT_39 --- ---
    KKL2401: hm, tak to ti neporadim, me to tak perfektne vyhovuje. Jinak muzes mit spusteni programu soucasti makefile...
    KKL2401
    KKL2401 --- ---
    ANT_39: Tomu prepinani do konzole jsem se prave chtel vyhnout.
    ANT_39
    ANT_39 --- ---
    KKL2401: to kontextove doplnovani by se mi taky hodilo :)
    M-x compile mam na F9.
    Takze F9-enter preklad, Alt-tab do console, sipka nahoru, enter spusteni programu.
    KKL2401
    KKL2401 --- ---
    Tak jsem po delsi dobe zase tu.
    Doted jsem vesmes pouzival emacs pri hratkach s webem, ale ted se budu brzo poustet do trosku novejsich vod - normalni programovani, abych tak rekl. Tedy ne, ze bych v emacsu jeste nikdy zadnej zdrojak nepsal, ale dosud to byly spis mensi veci, tohle bude asi trochu narocnejsi. Takze bych mel par dotazu.
    Lze nejak emacs primet pri psani zdrojaku objektovych jazyku (v mem pripade asi java), ke kontextovemu doplnovani - tj. napisu jmeno objektu a tecku a ono mit o nabidne, co na tom objektu lze zavolat za metody? Myslel jsem si, ze tohle je vysada takovych tech silenych IDE, ktery ja nerad (byt eclipse neni tak spatny, ale emacs je emacs), jenze zjistil jsem, ze treba VIM tohle umi, tak si rikam - co umi VIM, emacs by mohl taky. Tak jak to je?
    Otazka druha - kam mate nabindovano M-x compile? :-)
    Treti vec - poustite prave prelozeny program nejak rovnou z emacsu? Jak? Tedy ne, ze bych vubec nevedel jak, ale spis jestli jste si to nejak usnadnovali (zase treba na nejakou klavesovou zkratku). A vubec nejaky takovy finty a hinty ohledne techto zalezitosti a jejich programovani v emacsu by se mi hodily. Abych se proste co nejmene musel prepinat do nejakych jinych programu.
    KUBIIK
    KUBIIK --- ---
    Tohle mi napsal Emacs

    Warning: memory in use exceeds lisp pointer size
    Killing some buffers may delay running out of memory.
    However, certainly by the time you receive the 95% warning,
    you should clean up, kill this Emacs, and start a new one.


    bylo to při pokusu o otevření "alt.binaries.sounds.mp3.1990s" pod gnus, obsahující 109359 příspěvků
    všechno má svý meze ;-)
    ANT_39
    ANT_39 --- ---
    MRUCH: hm, mam obavu ze nez prolizat celej emacsi manual, to radsi zatnu zuby a budu to prerovnavat rucne :-/
    Kazdopadne diky, kdyz na neco prijdu tak to tu zverejnim.
    MRUCH
    MRUCH --- ---
    ANT_39: tak v tomhle je se nevyznam, veskere me pokusy neco upravit docela ztroskotaly ;) zkus kouknout sem, pokud si to jeste nezkoumal..
    http://cc-mode.sourceforge.net/html-manual/Syntactic-Analysis.html
    http://cc-mode.sourceforge.net/html-manual/Customizing-Indentation.html

    pripadne nejak prolizt celej ten manual ;) dej vedet, jestli neco vymyslis, tohle me taky docela zajima..
    ANT_39
    ANT_39 --- ---
    Hm, tak jinak. Duvod proc nechci automaticke zarovnavani je ten, ze celkem casto pisu kod podobny tomuto:
    std::for_each( container.begin(), container.end(), fcpp::ptr_to_fun( &Foo::foo ) );
    Jenze emacs si mysli, ze nejlepsi napad je druhy radek zarovnat pod prvni zavorku prvniho radku. Jde to nejak vypnout? Ono to syntakticke zarovnavani ma i jine neduhy, ale tohle me stve asi nejvic...
    ANT_39
    ANT_39 --- ---
    MRUCH: Slozenice jest '{'. Ukazu na prikladu. Mam nasledujici kus kodu - teda, chci mit:
    class SomeClass : public SomeBase { } Pominu jak to bude vypadat s c-syntactic-indentation, to se rozhodi uz to dedeni. I bez c-syn-in mi to vsak tu prvni slozenou zavorku zarovna na uroven tech dedicnosti, coz ja nechci. Podobne to dopadne i v nasledujicim pripade: void some_method() { if ( ... ) { // bla bla } }
    Radka s ifem se samozrejme poslusne zarovna, aby licovala s tou predchozi, coz je presne to co nechci. Jestli ti to nedela, tak se to mozna nastavuje neke jinde... mimo c-mode (ale to nedava smysl). Snad najit nejake electric-brace-behavior... budu googlit :)
    MRUCH
    MRUCH --- ---
    ANT_39: no bud Te spatne chapu, nebo.. se mi to nikam nijak nezarovnava.. slozenice jest '{' nebo '}' ?
    ANT_39
    ANT_39 --- ---
    MRUCH: Pisu v c++-mode. To co radis jsem zkousel. Vskutku uz skoro nezarovnava, krome pripadu kdy napisu slozenici, to radek zarovna do lajny s predchozim. :-(
    By clovek neveril jak ho bude stvat takova sikovna pomucka...
    MRUCH
    MRUCH --- ---
    ANT_39: nevim v cem pises, ale pravdepodobne to bude stejny/podobny: M-x set-va<TAB><RET>c-syn<TAB><RET>nil<RET> ;D
    ANT_39
    ANT_39 --- ---
    Hm, tak jsem se zkusil vim, jedit, nedit, a pokorne se vracim zpet k emacsu. Ne ze by mne nestval - zrovna ted bych uvital kdyby nechal svych chytracinek a prestal mi automaticky zarovnavat kod :-/

    Kazdopadne, jeden uzitecny odkaz:
    http://astron.berkeley.edu/~robishaw/comp/emacs.html
    Kliknutím sem můžete změnit nastavení reklam