ugrás a tartalomhoz

Sublime Text 2

Bártházi András · 2012. Feb. 9. (Cs), 11.33

Sokszor esett már szó editorokról itt a Weblabor hasábjain, s szinte mindig kiderült, hogy nincs olyan megoldás, mely mindenki igényeit kielégítené, mert ezek az igények eléggé különbözőek tudnak lenni. Az editor használat függ az egyéni preferenciáktól és adott esetben a céges irányelvektől is, melyek jó esetben konvergálnak egymáshoz. Bár mi az Arkonnál a Netbeans mellett tettük le a voksunkat (PHP szerkesztésre használjuk), most egy másik kódszerkesztőt ajánlanék, a Sublime Text 2-t.

A Sublime Text 2 elérhető Windowson, Linuxon és Mac OS X alatt is, én már próbáltam Windows és Mac OS X alatt is, mind a két platformon kényelmes volt használni. Dinamikusan fejlődik, és egyre népszerűbb. Kipróbálásra ingyenes, rendszeres felhasználásra 59 dollár (kb. 13.000 Ft) az ára.

A termék oldala még messze áll egy igazi termékoldaltól, viszont érdemes olvasni a blogbejegyzéseket, melyekből gyors benyomást nyerhetünk róla, hogy mit nyújt ez a kódszerkesztő. Nekem a következő dolgok tetszenek benne:

  • Sebesség: Az editor nagyon gyorsan elindul, és az egyéb funkciói is kellemesen gyorsak. Ráadásul a legfrissebb blogbejegyzésük szerint ezen a téren további javulást sikerült elérni.
  • Letisztult felület: Egy a böngészőkre (konkrétan a Chrome-ra) emlékeztető felhasználói felület fogad minket. A fülek, az alap gyorsbillentyűk tovább erősítik ezt a benyomást, otthonosan lehet mozogni.
  • Testreszabhatóság, kiterjeszthetőség: elég komolyan lehet konfigolni, TextMate kompatibilis kódszínezést és témákat tud (a TextMate-hez pedig rengeteg ilyen elérhető), és komoly plugin architektúrája van, egy plugin nagyon sokmindent meg tud csinálni. A plugineket Pythonban lehet kódolni.
  • Makrózás: könnyen lehet felvenni makrókat és lejátszani azokat.
  • Oszlopos és többszörös kiválasztás: nem csak egybefüggő szövegek, hanem oszlopok is kiválaszthatók, illetve több kiválasztásunk is lehet egyszerre. Ez utóbbi segítségével egyszerre több helyen is gépelhetünk például a kódban (refaktoráláskor lehet hasznos).
  • Projektek: bármely könyvtárból elindítható az editor, és azt a könyvtárat tudja projektként kezelni különösebb konfigurálás nélkül.
  • Vi kompatibilitás: a vi kedvelőknek fontos lehet: be lehet állítani vi kompatibilisre a szerkesztőt.

A szerkesztő hátrányai között talán azt érdemes megemlíteni, hogy bár nagyon dinamikusan fejlődik, még messze áll egy IDE által nyújtotta lehetőségektől. A pluginjei nagyon jók, viszont nem mindegyik működik mindegyik platformon, volt olyan amit például sikerült probléma nélkül belőnöm Mac alatt, Windows alatt viszont egyáltalán nem működött.

Az editor iránt érdeklődőknek érdemes lehet még elolvasni a Sublime Text 2 Tips and Tricks című blogbejegyzést (blogmarkként volt már itt a Weblaboron is), mely további érdekes feature-öket sorol fel, illetve mutat be. A hivatalos Sublime Text 2 doksi, továbbá egy független, nemhivatalos doksi átnézése is jelentősen gyorsíthatja az ismerkedést.

Amiért talán igazán népszerűvé vált a Sublime, az a TextMate kompatibilitás lehet, míg mindenki évek óta várja a TextMate 2-t (talán jön végre?), addig kaptunk egy jól működő, kompatibilis editort a Sublime személyében.

 
1

Tetszik

Poetro · 2012. Feb. 9. (Cs), 15.07
Nekem is tetszik a program, és szintén MacOS és Windows alatt próbáltam ki. Ami a nagy előnye lehet más hasonló szerkesztőkkel szemben, az a kiegészítők nagy száma. A nem hivatalos csomagkezelővel több, mint 200 csomag érhető el. Segítségükkel új nyelvekhez, keretrendszerekhez kaphatunk támogatást, valamint az alap szolgáltatásokat egészíthetjük ki kényelmi funkciókkal, új képességekkel. Ilyen például a CoffeeScript, Node.js, LESS, SCSS stb. támogatás, valamint például FTP/SFTP. Ami nekem szintén bejött, az a Vi-szerű szerkesztési lehetőségek, melyeket még tovább bővíthetünk kiegészítőkkel, mint amilyen a VintageEx.

Én mondjuk nem fogok váltani rá, főleg mivel most vettem meg a Komodo IDE 7-et, de kisebb feladatokra ideális lehet.
2

Mondana nekem valaki egy

sipiatti · 2012. Feb. 9. (Cs), 15.39
Mondana nekem valaki egy példát, mire jó egy text editorban a makrózás?
3

Videók

Poetro · 2012. Feb. 9. (Cs), 15.44
4

sokmindenre jó a makró

Gixx · 2012. Feb. 9. (Cs), 15.53
Én tipikusan két makrót szoktam rögzíteni és használni:

1: Sor elejére ugrás > vágólapról beilleszt > következő sor
2: Sor végére ugrás > vágólapról beilleszt > következő sor

Jól jön néha :)
5

LESS CSS compile

festo · 2012. Feb. 10. (P), 00.34
Szerintem az egyik legjobb editor. Én nem rég tértem át rá, de teljes mértékben meg vagyok vele elégedve, sőt inkább le vagyok nyűgözve.

Egyedül azt nem tudtam még megoldani, hogy ha elmentek egy *.less fájlt, abból automatikusan generálódjon egy *.css fájl is. Ha jól emlékszem van ilyen csomag hozzá, de nekem Ubuntura kellene. Valaki tud erre megoldást?
6

Build

Poetro · 2012. Feb. 10. (P), 00.44
Csinálsz egy új builder-t (Tools / Build System / New Build System...) További információval a dokumentáció és például a Sublime Text 2 Build System Scripts: CoffeeScript & Node tud szolgálni. LESS fordításához én például a Node.js-es LESS modult ajánlom.
7

vim

Walkman_ · 2012. Feb. 10. (P), 02.56
Miben jobb mint a vim ?
Nem is értem ha egy komoly fejlesztő aki X éve ezt csinálja és nem IDE-ben fejleszt, hogy jut eszébe bármi mást használnia mint Vim vagy Emacs ?
9

vim +1

dyuri · 2012. Feb. 10. (P), 10.05
Hasonlo gondolatok szulettek bennem is. Azt mondjuk en teljesen megertem, ha valakinek nem jon be a vim vagy az emacs billentyuzetkezeles/filozofiaja, es egy masik - egyebkent valoban igen jo - editort hasznal.

Nade akkor vajon o miert akarna vim szeru billentyuzetkezelest ebben a mas editorban? Ha azt szereti, akkor szerintem a vimnel nem tamogatja azt semmi jobban, es nekem az elmult ~12 ev alatt senki se tudott olyat mutatni, ami hasznos, es vimmel nem tudtam volna megoldani.

Egyebkent a Sublime-ot tobb ismerosom is nagy megelegedessel hasznalja, valoban jonak tunik, de erdekel valaki olyan velemenye, aki "vim-barat", es valamiert megis mondjuk Sublime-ot (vagy barmimast) hasznal vi-szeru modban.
8

Geany

ern0 · 2012. Feb. 10. (P), 08.23
MS-Windows alatt PSPad felhasználó voltam, így aztán sokáig keresgéltem. Egy ideig használtam Kate-et is, csak a KDE-t valamiért nem fekszik nekem.

A Geany lightweight IDE-nek mondja magát, ami akár igaz is lehet, szövegszerkesztőnek mindenesetre egészen kiváló, szénné konfigolható, pluginezhető stb.
22

Én is ezt használom, html,

sipiatti · 2012. Feb. 12. (V), 11.50
Én is ezt használom, html, css, js, php, python dolgokra, és meg vagyok vele elégedve.
10

Viccesek

Gixx · 2012. Feb. 10. (P), 10.08
Azért van humoruk a srácoknak:

No more typing wow_this_function_name_is_really_long(), wtf<enter> will get you want you want.


wtf, mi? :D
11

Smooth talk

Hidvégi Gábor · 2012. Feb. 10. (P), 10.22
Igen, ez nagyon vicces, én is lmfao, de azért az XD hiányzik a végéről, m8. OMG! Így viszont nem több az egész, mint egy epic fail.
12

Minimap

T.G · 2012. Feb. 11. (Szo), 11.01
Nekem ez a minimap funkció új, még nem láttam ilyet máshol, érdekes ötlet. Bár az osztályok és azok metódusainak felsorolása szerintem kényelmesebb használatot biztosít, de screenshot-ként nem néz ki rosszul. :)
13

Egy-egy gyors változtatás

MadBence · 2012. Feb. 11. (Szo), 16.34
Egy-egy gyors változtatás miatt többnyire nekem nincs időm, vagyis inkább nem fordítok rá időt, hogy metódusokat keresgessek egy listában. Inkább tekerek egyet az egéren, és mivel úgy-ahogy ismerem a kódot, azért "külalak" alapján egész jól meg tudom találni a keresett részt 1-2 mp alatt.
Gyakran viszont a kód hosszú, tehát mondjuk 100-200 sor környékén már nem megy ilyen könnyen, viszont a kód "formájára" még emlékszem, ilyenkor szerintem teljesen jó ez a térkép :)
14

Amikor scrollozni kell egy

inf · 2012. Feb. 11. (Szo), 23.02
Amikor scrollozni kell egy osztálynál az már régen rossz, kivétel javascript, ahol nincsenek osztályok, és minden egy fájlban van...
15

Nem értek egyet

MadBence · 2012. Feb. 11. (Szo), 23.50
Miért kell egy osztálynak rövidnek lennie? (amúgy pont javascriptet szerkesztettem benne, 200 sor, scrollozni kell, és csak egy "osztály" van benne). Még csak azt se lehet mondani, hogy god-object, mert tényleg csak egy dolgot csinál. De tegyük fel, hogy le tudnám redukálni 100 sorra a hosszát (nem lenne lehetetlen), nekem még az is két képernyő.
16

Azért, mert úgy átlátható,

inf · 2012. Feb. 12. (V), 02.28
Azért, mert úgy átlátható, hogy mit csinál, ha rövid. Ha egy osztály 50 sornál több, akkor az általában már két vagy több osztály, és nem egy. Mondjuk ez egy 200 soros scriptnél nem számít, de egy többezer soros programnál már igen. Js-el az a baj, hogy nem lehet minden egyes osztályt külön fájlba tenni, hacsak nem csinálsz egy build-et, ami összefűzi őket. Azt hiszem WSH-ban tákolok majd egy ilyen összefűző programot, arra az esetre, ha js-ben fejlesztenék valamit.
17

Node-ban fejlesztek, szóval

MadBence · 2012. Feb. 12. (V), 03.12
Node-ban fejlesztek, szóval szét tudom szedni a JS fájlokat, és valóban, a fájlok többsége elfér egy képernyőn (így sem mindegyik). De vannak kivételek, amik nem rövidek, és nem lehet szétszedni őket külön fájlokba.
De hiába szedném szét több fájlba, ha valamit meg kell keresnem, akkor megint csak ugyanott tartanék, mint az elején: honnan emlékezzek én arra, hogy melyik fájlban van ez meg ez a metódus. Itt ránézek a térképre, és odamegyek kvázi konstans idő alatt, míg ha végig kell néznem 2-3 fájlt (amik persze lehet, hogy meg sincsenek nyitva), az mindenképpen többletidő.
És persze a kommentekről nem is volt szó (hiába tudok olyan beszédes kódot írni, amit bármikor megértek). Ha nem csinálhatom meg, hogy nem dokumentálok, akkor az is elég sok helyet el tud foglalni, főleg ha az ember rövid metódusokat ír (1 sor leírás, 1 sor @param/@return az máris 4 sor szabványos komment)
Egy jó megoldás lehetne, ha kihasználnám az editorban a code foldingot :) (mondjuk engem nagyon tud zavarni, hogy nem látom mi van a fájlban, ezért is nem használom többnyire)
19

De hiába szedném szét több

Török Gábor · 2012. Feb. 12. (V), 11.04
De hiába szedném szét több fájlba, ha valamit meg kell keresnem, akkor megint csak ugyanott tartanék, mint az elején: honnan emlékezzek én arra, hogy melyik fájlban van ez meg ez a metódus.

Neked nem kell emlékezni. Megnyomsz egy gyorsbillentyűt és elkezded gépelni az osztály vagy metódus nevét, és az IDE már meg is nyitotta neked. Feltéve, hogy tud ilyet az IDE-d. Nem hiszem, hogy az a jó megközelítés, hogy az eszközhöz igazítod a fejlesztési módszertanod. Válassz olyan eszközt, amely támogatja azt, ahogy dolgozni szeretnél.
23

Ilyen Javascript IDE-t még

MadBence · 2012. Feb. 12. (V), 15.00
Ilyen Javascript IDE-t még nem láttam :-)
24

Eclipse/Aptana, JetBrain

Török Gábor · 2012. Feb. 12. (V), 15.50
Eclipse/Aptana, JetBrain WebStorm, vagy egy Emacs/Vim megfelelően konfigurálva.
25

+1 :-)

inf · 2012. Feb. 12. (V), 18.48
+1 :-)
20

Js-el az a baj, hogy nem

Török Gábor · 2012. Feb. 12. (V), 11.06
Js-el az a baj, hogy nem lehet minden egyes osztályt külön fájlba tenni, hacsak nem csinálsz egy build-et, ami összefűzi őket.

És miért ne csinálnék buildet? Azért maszatoljak, mert lusta vagyok? JS-ben is lehet tisztességesen programozni, és megvan hozzá minden eszköz.
26

Yepp, kezdem belátni én is

inf · 2012. Feb. 12. (V), 18.49
Yepp, kezdem belátni én is :-)
27

Rövid, de

Pepita · 2012. Feb. 12. (V), 18.53
mennyire jó erre menni?
Minél több fájl, annál több (db) lemezelérés. Ezt érdemes azért "egészséges" keretek közt tartani szerintem. Js-ben különösen (setleg külön-külön fejlesztve, majd szerveren egybefűzve), nemigazán hasznos, ha a böngészőnek 128 fájlból kell összeraknia egy oldalt.
28

Jó irány

Bártházi András · 2012. Feb. 13. (H), 08.58
Abszolút jó irány. Ha JavaScriptről beszélünk, akkor az élő site már nem 128 fájlt fog látni, hanem egy (vagy pár) fájlba összerakott, minify-olt végeredményt, ha van egy jó build rendszered.
29

Miért is?

Gixx · 2012. Feb. 14. (K), 14.59
Amikor scrollozni kell egy osztálynál az már régen rossz...


Ennek miért is kellene így lennie? Engedelmetekkel vitába szállnék ezzel a kijelentéssel. Mert ha egy osztály egy logikai egységet alkot, akkor minek darabolni?

Például (és hangsúlyozom, hogy ez CSAK példa, egy szimpla szemléltetés, és nem übertámadhatatlan érvelés) ha a GD függvényeit akarod egy osztályba foglalni, esetleg még olyan extrákkal felvértezni, hogy grayscale képpé tudja alakítani a resource-t (vagy még akár egy tonna másik egyedi képmanipulálást is ide lehet venni), akkor bizony miért kéne arra törekedni, hogy ne scrollozzunk? Hisz végig a $this->resource az, amivel dolgozol. Ebből aztán származhat a JPG vagy PNG kezelő osztály, ami a betöltésben és a mentésben egyedi, esetleg egy-két tipus-specifikus egyedi megldásban (pl.: transzparencia), de azontúl végig csak a $resource az, amivel dolgozol, az meg tipusfüggetlen. És akkor még az interfészek használhatóságát nem is említettem. És ha szép és teljes munkát akarsz végezni egy ilyen osztállyal, akkor bizony scrollozni fogsz keményen... És attól, hogy nagy, még simán lehet áttekinthető.

Talán amint az észrevehető volt, a fenti példa nem teljesen légből kapott, egy ideje gondolkozok egy ilyen osztály megírásán "csakúgymertmiértne" alapon. Talán meg is csinálom, majd az élet eldönti, mennyire életképes ötlet :P
30

Szerintem a GD-nél is ki

inf · 2012. Feb. 14. (K), 17.56
Szerintem a GD-nél is ki lehet találni egy olyan interface-t a resource-ra, ami csak néhány metódust tartalmaz, a képeket manipuláló kódokat meg ki lehet szervezni külön osztályokba. Pl a jpg meg png beolvasást meg mentést végző kódnál nálam teljesen egyértelmű, hogy mindegyik külön osztályban kap helyet: mondjuk van egy Reader interface-ed, amit a PngReader és a JpegReader implementál. Ha nem túl hosszú a GD-s kódod (500-1000 sor comment nélkül), akkor küldd el, és szívesen refaktorálom.
31

Ennyire nem kell

Gixx · 2012. Feb. 14. (K), 23.53
Szerintem ennyire nem kell túlbonyolítani.

Lesz egy abstract class, pár alap dologgal és a read meg write az amit mindenben le kell fejleszteni. Nagyjából már megvan amúgy :)
21

Mostanában ez nagyon menő –

Török Gábor · 2012. Feb. 12. (V), 11.18
Mostanában ez nagyon menő – Emacshoz is elérhető minimap kiegészítő –, habár azontúl, hogy jól néz ki, nem sok értelmét látom. Kit érdekel, hogy fizikailag hol van valami egy fájlban? Megfelelő gyorsbillentyű, és kezdhetem gépelni a keresett entitás nevét, és már oda is ugrott.
18

nem csak egybefüggő szövegek,

Török Gábor · 2012. Feb. 12. (V), 11.01
nem csak egybefüggő szövegek, hanem oszlopok is kiválaszthatók, illetve több kiválasztásunk is lehet egyszerre. Ez utóbbi segítségével egyszerre több helyen is gépelhetünk például a kódban (refaktoráláskor lehet hasznos).

Ez ügyes magyarázat arra, hogyan palásoljuk el azt a tényt, hogy nem tud érdemben segíteni a refaktorálásban. :)
32

Sublime + Ruby

karatedog · 2012. Már. 20. (K), 18.30
Ruby-ra is egész használható, de IDE sosem lesz belőle, maximum Text-Editor.
A block-folding még nem működik benne rendesen, az elég bosszantó.
33

A Sublime szerintem kitűnő

MadBence · 2012. Már. 21. (Sze), 08.46
A Sublime szerintem kitűnő text-editor. Mármint 4-en dolgozunk egy közepes projecten egyetemi keretek között, és mivel viszonylag keveset kell kódolni, igaziból nagyon lóhalálában ment mindig. Pl egy csomószor az volt a gond, hogy megnyitotta az egyik srác eclipse-ben az egyik fájlt, szerkesztgette, de az eclipse valami saját project mappájába mentette, így egy csomó időt eltököltünk, miért mondja a git azt, hogy nincs változás.
Persze ha rászánná az ember az időt, hogy rendesen beállítsa az IDE-t, satöbbi, akkor nem lenne vele gond, de egész egyszerűen idő hiányában ilyenre nincs (nem volt) idő.
Amikor sokadszorra fordult elő, hogy kézzel (!) kellett átmásolni az IDE elmentett fájljait vissza a project mappába, akkor mondtam azt, hogy na akkor most eclipse becsuk, valami normális szövegszerkesztő megnyit, és gitet pedig terminálból használjuk.
(hogy egy kis flamebaitet bedobjak, a srác macen dolgozott, és nekem nem tűnt valami kényelmesnek egyik eszköz sem. Persze lehet, hogy csak a srác dolgozik ritkán pl a konzollal, de én még annyi anyázást nem hallottam közben :D)
De kicsit (nagyon) eltértem a tárgytól, szóval be is fejezem :)