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