OT: Coz takhle dat si jEdit (bylo RE: [python] vim/gvim)
Petr Prikryl
PrikrylP na skil.cz
Úterý Leden 3 15:12:59 CET 2006
Přidám svou zkušenost s editory... (často to vede
k flame-wars, budu se snažit být neutrální ;)
K jEdit jsem došel klikatými cestičkami za delší
dobu. Tímto chci lidem naladěným na stejnou vlnu
ušetřit bádání. Jiné názory respektuji. Rád si
přečtu protinázory a srovnání s jinými editory od
těch, kteří používali jEdit a používají teď
něco jiného.
geon později napsal...
> [... chci] se připravit na možný přechod na Linux.
Dříve jsem střídavě dělal pod Unixem, pod DOSem i
pod Windows. Momentálně jsem windowsovský bastard
(bo za to dostávám peníze :) V minulosti jsem tedy
používal editory ryze unixovské, ryze windowsovské
a o něco později jsem si vybíral editory, které
lze provozovat ve všech prostředích a lze je
stejně nakonfigurovat.
Používal jsem vi a jeho následníky, emacs a jeho
klony (JED, malý a rychlý, emulující hlavní
funkčnost Emacs z hlediska editace) a nakonec jsem
skončil u jEdit (psaný v Javě, doporučuji spíše
aktuální vývojovou verzi 4.3pre3, než starší 4.2
-- podle mého názoru je už docela stabilní).
Dříve bylo velmi důležité, jak je editor "žravý".
To byl důvod, proč jsem třeba neměl moc rád Emacs
a proč jsem dával přednost vi. Ačkoliv nepopírám
mocnost vi a jeho následníků, nesedí mi (Emacs
jsem měl až na jeho žravost raději). Je to ryze
subjektivní věc. Ale v podstatě mi více vyhovuje
ovládání, kdy se nemusím přepínat mezi editačním a
příkazovým režimem.
Troufám si tvrdit, že nároky editoru na hardware
už dnes nejsou určující. Dnes už solidní rychlostí
běží skoro vše. Určující je pocit, že mi editor
dává vše, co potřebuji. Momentálně kvůli tomu
používám jEdit, i když je díky implementaci v Javě
pomalejší, než editory kompilované. Výhody
z mého pohledu převažují.
Jaroslav Pachola napsal...
> Dne Monday 02 January 2006 14:15 geon napsal(a):
> > Zkoušel jsem VIM/ GVIM a přesto, že zatím stále
> > dokážu rychleji a lépe pracovat s PSPadem, chtěl
> > bych věřit, že VIM je lepší ....
Věřit nelze ničemu. Musí se to vyzkoušet a
posoudit své pocity. Editory jsou velmi
subjektivní věc. Rozhodně doporučuji přečíst si
pro orientaci různá srovnání (google).
> [...] Nektere moznosti jen tak nekde
> nenajdes [...] - mocny makrojazyk, moznost pouzivani
> externich filtru na vybrany text, mocne
> regularni vyrazy, moznost opakovani predesle
> editace na jinem miste, pro me dulezite moznosti
> zvysovani konstant, obecne provedeni nejake akce
> s urcenym poctem opakovani a dalsi veci.
>
> Perfektni je prave, ze se clovek muze pouzivani
> sipek a podobnych veci zcela vyvarovat.
> Jak ale psal David Necas, tento editor ma zcela
> jinou filosofii nez wordstarovske editory. Ucici
> krivka je o neco delsi, ale clovek zacne byt
> pomerne brzo vcelku efektivni. Ja jsem presel na
> (g)vim v praci - pouzivame casto explicitni foldy
> (pomoci # {{{, # }}}), coz je velice vyhodna vec
> a nikde jinde jsem to nevidel, takze moc moznosti
> mi nezbylo. Ale nelituju, ikdyz urcite jsou veci,
> ktere jsou jinde resene pohodlneji nebo ve
> (g)vimu chybi zcela.
Někdy jsem měl u vi pocit, že se stávám závislým a
že přestávám být schopen efektivně používat
cokoliv jiného. Násilné napasování vim na všechny
možné nástroje, které používám pod Windows sice
možné asi je, ale připadá mi to jako zbytečná
práce. Někdy prostě chci používat dodávané
vývojové prostředí (např. MS Visual Studio IDE).
Trvat na výhradním používání vim pak může být
brzdou (mozková epromka se mi přepaluje čím dál
obtížněji).
Znám skalní unixáky, kteří bez vim nedají ani
ránu. Ale znám taky skalní unixáky, kteří nemají
vim rádi, i když s ním docela umí. Znám jednoho,
který začal používat jEdit velmi dávno. Tehdy
jsem si ještě ťukal na čelo.
Když se mrkneš na IDLE, taky to má editor blížící
se spíše myšoidním editorům, než vi. Troufám si
tvrdit, že s příchodem grafických uživatelských
rozhraní, souvisejících způsobů ovládání aplikací
a větších displejů se dřívější jednoznačná
výhodnost vi dost snížila.
Rozumné editory mají svůj vnitřní jazyk, který
umožňuje definovat "moje" operace. Osobně jsem jej
používal málokdy. Emacsovský lisp se mi zdál dost
ujetý (nic proti Lispu, ale neznám ho). Speciální
vnitřní jazyk editoru JED byl příliš speciální.
jEdit používá JavaBeans (nebo jak se to píše), což
mi připadá jako dobrý kompromis.
Shrnuto, zakotvil jsem u jEdit (www.jedit.org),
který mi zatím velmi vyhovuje, ale nebráním se
možnosti přejít na jiný editor. Docela by mě
zajímalo, jestli někdo z jEdit přešel na něco, co
by mu vyhovovalo víc. Stručně k původním dotazům
ve vztahu k jEdit:
* Podporuje folding explicitní {{{ }}} i na
základě odsazení (výhodné pro Python).
* Podporuje regulární výrazy pro vyhledávání i
náhrady.
* Vyhledávání a náhrady provádí na požádání i v
souborech, které nejsou otevřené (zadaného typu
v zadaném adresáři).
* Podporuje spoustu editačních režimů,
rozpoznávání podle přípony souboru (maska) nebo
podle explicitní informace na úvodních řádcích.
Pythonovský režim je docela dobrý (syntax
highlighting, odsazování, folding).
* Parádně jednoduše vyřešena definice a používání
jednoduchých maker pro rozgenerování textu.
Troufám si tvrdit, že lepší způsob jsem zatím
neviděl. (Netvrdím, že to jiné editory nedělají
taky. Jenom jsem to nikde jinde neviděl.) Dá se
doinstalovat plugin pro ještě dokonalejší
expanzi podle šablon.
> * jak udělat automatické dokončování [...]
Na tuto a podobné funkce jsou předdefinovány
operace, které jsou navázány na default klávesy.
Každou operaci lze uživatelsky jednoduše navázat
na dvě alternativní klávesy. Kontroluje se, zda se
daná kombinace už nepoužívá.
Zkušenost mám jen s expanzí slov, která už jsou
jinde napsaná. Ale předpokládám, že lze
dodefinovat něco jako slovník. Nepotřeboval jsem
to.
> * jak označovat pomocí Shift a kurzorové šipky?
Klasicky, normálně.
* Podporuje sloupcové bloky -- přepíná se režim
sloupcové/normální a pak se dá vybírat i šipkami
se shiftem.
Líbí se mi, že můžu definovat sloupcový blok
nulové šířky, který se chová jako kurzor přes
více řádků. Když začnu psát, píše se to na všech
řádcích najednou. Když vložím z clipboardu,
chová se to podle očekávání podobným způsobem.
Pokud byl obsah clipboardu výsledkem sejmutí
sloupcového bloku, chová se to očekávaným
způsobem.
Dříve jsem podobné věci řešil v jiných editorech
regulárními výrazy.
> * ze schránky se vkládá text vcelku netradičně [...]
jEdit podporuje historii schránky. Kromě toho
podporuje něco jako pojmenované schránky, které
můžu vkládat jinou kombinací kláves.
> * jak pracovat s kódováními? [...]
Lze nastavit default kódování, které se použije
při práci se souborem, u kterého se kódování
jinak nepoznalo. U některých souborů se kódování
rozpozná (UTF-16, UTF-8Y, html a xml s
definicí kódování uvnitř textu).
Vnitřně pracuje s UTF-16. S češtinou v různých
kódováních nejsou problémy.
Kódování lze přepnout za běhu, takže následné
uložení proběhne v nově určeném kódování. Pokud
bylo kódování špatně určeno při načítání, přepnu
si ho a provedu Reload. Kódování se pamatuje
v seznamu naposledy používaných souborů, takže
příště se pro daný soubor použije stejné kódování,
jako minule.
To je zatím vše,
pepr
Další informace o konferenci Python