2012幎以æ¥ãç§ã¯Alexei Torgashinãäœæãããšãã£ã¿ãŒã䜿çšããŠã VFP / JS / Python / XML / HTMLèšèªã®ã»ãŒãã¹ãŠã®ããã¹ããã¡ã€ã«ããã°ãããã³ããã°ã©ã ã³ãŒãã衚瀺ããã³å€æŽããŸããæåã¯SynWriteã§ããã ãçŸåšã¯CudaTextã®åå«ã§ãã 圌ã¯ã AkelPad ã Notepad ++ ã Sublime Textãªã©ããã¹ãæžã¿ã®ãªã¹ããããšãã£ã¿ãŒãæå³çã«éžæããŸããã ãã¯ãã«ã«ãµããŒãã®å¿çæ§ã決å®çã§ããããšã倿ããŸãããAlexeyã¯ãŠãŒã¶ãŒããã®èšå€§ãªæ°ã®èŠæ/èŠæ
ãåãå
¥ããããã«ããããå®è£
ããŸããã 説æããŸãã é¡ã/èŠæ
ã®æ°ã¯é·å¹Žã«ããã£ãŠã»ãŒäžå®ã§ãããã3幎åã«GitHubã«åãæ¿ããåŸã ããã¯æž¬å®å¯èœã«ãªãã幎é400ã®é¡ããš100ã®ãã°/å¹Žãšæšå®ãããŠããŸãã ã¯ãŒã«ãŒã®èŠæ±ã«å¿ããŠæ©èœãæ¡åŒµããŠãããšãã£ã¿ãŒå
šäœã®ä¿¡é Œæ§ã«åœ±é¿ãäžããªãã£ãããšã¯ãé©ãã¹ãããšã§ãã ãããŠã SynWriteã®æç¶å¯èœãªéçºãªãœãŒã¹ã䜿ãæãããããšã CudaTextãçãŸããŸããã
åºãã¢ã¬ã¯ã»ã€ã«æž¡ããŸããAlexeyãšããŸããŸãªãããã¯ã«ã€ããŠäŒè©±ããŠããŸãã åœŒã¯æè¿ãSublimeã«æ¬ ããŠãããã®ããæããŸããã ç§ã«ã¯é¢çœããã ã£ãã®ã§ããããã®ã¢ã€ãã¢ãHabréã§çºè¡šããããšã«åæããŸããã ããã«ãç§ã®ç·šéã§ã¢ã¬ã¯ã»ã€ããã®è«æã®ãã¬ãŒã³ããŒã·ã§ã³ããããŸãã
ããã°ã©ã ãäœæããã®ã«æ°å¹Žãè²»ãããŠããã®ã§ãç«¶åä»ç€Ÿã®çµæãéã£ãèŠæ¹ãããŠããŸãã ããªãã¯ãããã®äžã«è¯ãç¹æ§ïŒãã§ã«ããããé©çšããããé©çšãããïŒã ãã§ãªããæ¬ ç¹ã«ãæ°ã¥ããŸãã ç§ãCudaText ïŒä»¥éCuda ïŒãšæ¯èŒããå Žåã Sublime Text ïŒä»¥éSublime ïŒã§äœãæ¹åã§ãããã瀺ããŸãã åæã«ã Sublimeããã§ã«æ®åããŠãããšãã«ç§ã®ãšãã£ã¿ãŒãçãŸããããšã匷調ããŸãã圌ã®ã¢ã€ãã¢ã®å€ãã¯Cudaã®åºæ¬ã§ããã
- ããã¹ãèšå®ãã¡ã€ã«
- ãªãŒããŒã¬ã€èšå®
- ãã«ããã£ãªããž
- Pythonãã©ã°ã€ã³
- ãã¹ãŠã®ããŒã ã®ãã¬ãã
Sublime㯠ãããã¹ãããŒã ã¹ã¿ã€ã«ã®äœæ¥ã峿 Œã«èª²ããŸãã
ããšãã°ã
- èšå®ãããã€ã¢ãã°ã¯ãããŸãã-jsonãã¡ã€ã«ã®ã¿ã§ãïŒå€ãã®ãã¡ã€ã«ããããŸãïŒã
- [ãã¡ã€ã«ã§æ€çŽ¢]ãã€ã¢ãã°ã«ã¯è¿œå ã®ã³ã³ãããŒã«ã¯ãããŸãã-代ããã«ãããã¹ããã£ãŒã«ãã«å
¥åããããã®ãèšèªãããããŸãã
ãã®ã¹ã¿ã€ã«ã¯å¹ççã§ãæè»æ§ããããæ¡åŒµå¯èœã§ããããŠãŒã¶ãŒã«ããç¶ç¶çãªåŠç¿ãå¿
èŠã§ãã åå¿è
ã«ãšã£ãŠãããã¯é¡èãªãšã³ããªãŒãããå€ãäœæããŸãã
Cudaã¯ããæé ãªäŸ¡æ Œã®ããŒã«ã«ãªãããšããŠããŸãã ããã¯ã Lazarusç°å¢ã§äœæãããŠããããå¯èœã§ããããã¯ã Win / Linux / Macéã®è±å¯ãªGUIã®æŠåšãšç§»æ€æ§ãæäŸããŸãã ãã®çµæã Cudaã®jsonèšå®ã®æè»æ§ã¯ãããšãã°ãã¡ã€ã«ã«ããæ€çŽ¢ïŒ habrã®æŠèŠããããŸã ïŒãèšå®ãšãã£ã¿ãŒãªã©ã®ãã€ã¢ãã°ãã©ã°ã€ã³ãšçµã¿åããããŸãã
Sublimeãã©ã®ããã«æ¹åãããã«ã€ããŠãããã€ãã®ã¢ã€ãã¢ã衚çŸããããšæããŸãã ãã¡ãããããã¯ç§ã®å人çãªæèŠã§ãã
ããŒã«ããŒ
Sublimeã«ã¯ããŒã«ããŒã¯ãããŸããã ãããã£ãŠã圌ã®ããã¹ãããŒã ã¹ã¿ã€ã«ãçŸããŸãã ã©ããããç·šéå¯èœãªã³ãŒãã®äŸ¿å©ãªå ŽæãããéèŠã§ãããšæãããŸãã ãã¹ãŠã®ã³ãã³ãã¯ãã¡ãã¥ãŒããããŸãã¯ååãããã¬ããããããŸãã¯ãããããŒããåŒã³åºãããšãã§ããŸãã ãã®ã¢ãããŒãã«ã¯æãããªæ¬ ç¹ããããŸã-ããŒã ã®ååãŸãã¯ãããããŒãäºåã«ç¥ãå¿
èŠããããŸãã ããããé©åãªããŒã ã®ååšãšãã®ååã¯ãåžžã«æçœãšã¯ã»ã©é ããã®ã§ãã
åæå¯èœãå«ãã«ã¹ã¿ãã€ãºå¯èœãªããŒã«ããŒã¯ã䜿çšã®ãããå€ãäžãã詳现ã®1ã€ã§ãã
Cudaã«ã¯ãã³ãã³ããåŒã³åºãããã®æ°Žå¹³ã«ã¹ã¿ã ããŒã«ããŒãšãããã«ãããªãŒããããžã§ã¯ããã³ã³ãœãŒã«ãåãæ¿ããããã®åçŽãµã€ãããŒããããŸãã APIã¯ãããŒã«ããŒã®ã»ããã¢ãããæ
åœããŸããã€ãŸãããã©ã°ã€ã³ãä»ããŠå®è¡ãããŸãã ãã©ã°ã€ã³ãæ°ããããã«ã远å ãããšããµã€ãããŒã«æ°ãããã¿ã³ã衚瀺ãããå ŽåããããŸãã

Sublimeã«ããŒã«ããŒã远å ããŠãã以åã®ãã¯ãããžãŒã«éåããããšã¯ãããŸããã
ã¹ããŒã¿ã¹ããŒ
Sublimeã§ã¯ãã¹ããŒã¿ã¹ããŒã貧匱ã§ãã

ïŒ1ïŒã³ã³ãœãŒã«/æ€çŽ¢/眮æ/ããã«ãã¡ã€ã«ã¹ã€ããã«ãã
ïŒ2ïŒæçš¿
ïŒ3ïŒãšã³ã³ãŒã
ïŒ4ïŒã¿ã€ãEOL
ïŒ5ïŒã¿ãèšå®
ïŒ6ïŒæ§æ
ãããã®6ã€ã®ãã£ãŒã«ãã®ãã¡ãèšå®ã§é衚瀺ã«ã§ããã®ã¯2ã€ïŒãšã³ã³ãŒããšEOLïŒã®ã¿ã§ãã¡ãã»ãŒãžãã£ãŒã«ãã§ã¯ããã©ã°ã€ã³ã¯ããŒãšå€ã®ãã¢ã远å /åé€ã§ããŸãã æ®ãã®ãã£ãŒã«ããé衚瀺ãåé
眮ããŸãã¯æ§æããããšã¯ã§ããŸããã ãã£ãªããžïŒsïŒ/éžæïŒsïŒã«é¢ããéèŠãªæ
å ±ã[ã¡ãã»ãŒãž]ãã£ãŒã«ãå
ã«ååŸãããããŒã ããã®ããã¹ããšæ··åãããããšã¯ç¹ã«å¥åŠã§ãã
user.json
ã§ã¯ããŠãŒã¶ãŒã¯user.json
ã§ã¹ããŒã¿ã¹ããŒã®ãã£ãŒã«ãã䜿çšããŠãã·ãŒã±ã³ã¹ãå¹
ãé
眮ãæå®ã§ããŸãã
"ui_statusbar_panels": "caret,L,250|msg,L,0|lexer,L,70|tabsize,L,70"
caret
ãã£ãŒã«ãã®å
¥åïŒãã£ãªããž/éžæã«é¢ããæ
å ±ïŒã¯ããã¯ã眮æã䜿çšããŠåå¥ã«æ§æã§ããŸãã ããšãã°
"ui_statusbar_no_sel": "r={y}/{count} c={xx}", "ui_statusbar_carets": "carets={carets} top/bot={y}/{y2}", "ui_statusbar_col_sel":"r={y}/{count} c={xx} s=[{sel} x {cols}]",
ãããã®èšå®ã®çµæã Cudaã¯ã¹ããŒã¿ã¹ããŒã«è¡šç€ºãããŸã
- ãã£ãªããžã1ã€ã®å ŽåïŒ

- ãã£ãªããžã4ã€ããå ŽåïŒ

- åçŽéžæã®å ŽåïŒ

Cudaã§ã¯ã[ã¡ãã»ãŒãž]ãã£ãŒã«ãã«ããã¹ãã衚瀺ããã®ã«ãããæéãèšå®ããããšãã§ããŸãã
ã³ãŒãããªãŒ
ãã¹ãŠãããã¹ã圢åŒã§æç€ºãããšããåŽé«ãªé¡æã¯çè§£ã§ããŸãã ãã ãããã¹ãŠã®IDEããã³é«åºŠãªããã¹ããšãã£ã¿ã«ããããªãŒããã«ã®æåŠã¯ãéåžžã«èŠçã§ãã éåžžã®ã¿ãïŒããšãã°ã Outline
ãã©ã°ã€ã³ïŒã«é
眮ããããããã¹ãããªãŒãã䜿çšã§ããŸããã Sublimeã€ã³ã¿ãŒãã§ã€ã¹ãšã®çµ±åãäžååã§ãããå®å
šãªä»£æ¿ã§ã¯ãããŸããã
Cudaã«ã¯ãã¢ã¯ãã£ããã¡ã€ã«ã®æ§æèŠçŽ ã衚瀺ããããã®Code tree
ããã«ããããŸãïŒããã°ã©ã èšèªã®é¢æ°/ã¯ã©ã¹/ãã£ãŒã«ããããŒã¯ã¢ããèšèªã®ã¿ã°/ããŒã

çµ±åïŒ
- 衚瀺ã¯åæã§ããã€ãŸããããªãŒã«ã¯ãã³ãŒãã倿ŽãããçŽåŸã«ã³ãŒãã®ã¹ããŒã¿ã¹ã衚瀺ãããŸãïŒã«ã¹ã¿ã é
å»¶ä»ãïŒã
- éžæããããªãŒããŒãã¯ãã³ãŒãå
ã®ãã£ãªããžã®äœçœ®ãšåæããŸãã
- ããªãŒããŒãã¯ããããã¯ã®éžæããã£ãªããžã®ç§»åãããã³ãã®ä»ã®æäœã«äœ¿çšãããŸãã
ããã«ã Cuda APIã䜿çšãããšãããªãŒãå«ãæ°ããããã«ãäœæããŠå
¥åã§ããŸãã Project Manager
ãã©ã°ã€ã³ã¯ãŸãã«ãããè¡ããŸãã
èšå®ãšãã©ã°ã€ã³ã®ãããã©ã«ããŒ
Sublimeã®ããã¥ã¢ã«ã«æ·±ã没é ããŠããªããŠãŒã¶ãŒã«ãšã£ãŠã¯ãèšå®/ããã±ãŒãž/ãã©ã°ã€ã³ããã©ã«ããŒã«é
眮ããç¶æ³ã¯æ··ä¹±ããããã«èŠããŸãã æ°ãã«ã€ã³ã¹ããŒã«ããããšãã£ã¿ãŒå
ã®æåã®ã¹ãããã¯é©ç°çã§ãïŒã¡ãã¥ãŒã³ãã³ãPreferences -- Settings
2ã€ã®ãã¡ã€ã«ãéããŸãããšãã£ã¿ãŒã®ã¿ã€ãã«ã®1ã€ïŒããã©ã«ãèšå®ïŒã¯ïŒWinã§ïŒ
Sublime Text 3/Packages/Default/Preferences.sublime-settings
ãããããã£ã¹ã¯ã«ã¯ãã®ãããªãã¡ã€ã«ããã©ã«ãã¯ãããŸããã äžè¬çã«ããã®ãããªããªãã¯ã®ããžãã¯ã¯æšæž¬ãããŸãã ããã©ã«ãèšå®ã¯ãšãã£ã¿ãŒã³ãŒãã«é
ç·ããå¿
èŠãããããããã¯ãã¡ã€ã«ã«è€è£œããããã©ããã«ããããããããã¯éçºè
ã®è£éã«ãããã®ã§ãã åŽé«ã¯ããã¡ã€ã«ã«ãããµããããŸãã
Cudaã§ã¯ãããã©ã«ãèšå®ãä¿è·ãããŠããŸãããã¢ã»ã³ããªã«ã¯å®éã®ãã¡ã€ã«ããããŸã
settings_default\default.json
è€è£œãããã³ã¡ã³ããä»ããããŸãã ãã®ãããªãã¡ã€ã«ã®ååšã¯ããŠãŒã¶ãŒã ãã§ãªããã©ã°ã€ã³ã«ãšã£ãŠã䟿å©ã§ãã ããšãã°ãèšå®ãšãã£ã¿ãŒã¯ããã®ãã¡ã€ã«ãããªãã·ã§ã³èªäœã®ãªã¹ãããªãã·ã§ã³ãžã®ã³ã¡ã³ããããã³ããªãŒå
šäœã«ãªãã·ã§ã³ãé
åžããããã®ããŒã¯ã¢ãããæœåºããŸãã
Sublimeã®ããã±ãŒãžã§ãåæ§ã®åé¡ãçºçããŸã-ããã±ãŒãžã§ããããæ¢ããŠãèŠã€ãããŸããã
Cudaã«ã¯Sublimeã®ãããªåŒ·åãªè¿œå ããã±ãŒãžã®ããŒã¹ã¯ãããŸãããã Cudaã®é
眮ããžãã¯ã¯ééçã§ãã ããšãã°ããã©ã°ã€ã³ã®å Žåããã¹ãŠã衚瀺ããã1ã€ã®py
ãã©ã«ããŒããããŸã-æšæºãšããªã€ã³ã¹ããŒã«ã®äž¡æ¹ã§ãã data/themes
ã¯data/themes
ãã©ã«ããŒã data/snippets
ã¯data/lexlib
data/snippets
ã data/lexlib
ã¯data/lexlib
ããããŸãã
ããã±ãŒãžç®¡ç
Package Control
ãã©ã°ã€ã³ã®å¥åŠãªç¶æ³ã äžæ¹ã Sublimeã¯ãã®ãã©ã°ã€ã³ãªãã§ããã«äœ¿çšã§ããŸãã äžæ¹ã§ããããªãã§ã¯ã»ãšãã©äœãæ·±å»ãªããšã¯ã§ããŸãã-远å ãªãã§ã¯ããšãã£ã¿ãŒã¯éåžžã«ä¹ããã§ãã [ Tools--Packages
]ã§ã¯ãªãã[ Preferences
]ã¡ãã¥ãŒã«ãã©ã°ã€ã³ãé
眮ããŠãããã®ç¹å¥ãªã¹ããŒã¿ã¹ã瀺ãããŸãã ã©ããããããã€ãã®ãèäœæš©ãã«ããããã®ãã©ã°ã€ã³ãSublimeã¢ã»ã³ããªã«å«ããããšãã§ããŸããã
Cudaã«ã¯ ã Addons Manager
ãå«ãããã€ãã®ãã©ã°ã€ã³ïŒçŸåš10ïŒããã£ã¹ããªãã¥ãŒã·ã§ã³ã«å«ãŸããŠããŸãã
ãããŒãã£ã³ã°ããã«
Sublimeã«ã¯ã¢ããªã·ãã¯ãŠã£ã³ããŠã¬ã€ã¢ãŠãããããŸããã€ãŸããã³ã³ãœãŒã«ã°ã«ãŒããšã¿ãã°ã«ãŒãã¯äžç·ã«é
眮ãããŠããŸãã è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãå®è¡ã§ããŸãããåã€ã³ã¹ã¿ã³ã¹ã«ã¯åžžã«ã¿ãããããå Žåã«ãã£ãŠã¯ã³ã³ãœãŒã«ããããŸãã
Cudaã«ã¯ãã³ã³ãœãŒã«ãå¥ã®ãŠã£ã³ããŠã«è¡šç€ºããããã®èšå®ãšã³ãã³ãããããŸãã ããã«ãããã¡ã€ã³ããã¹ãã®é«ãã«åœ±é¿ãäžããã«ç°¡åã«ã¹ãã¬ããããããããšãã°2çªç®ã®ã¢ãã¿ãŒã«é
眮ãããã§ããŸãã ããã«ãã¡ã€ã³ããã¹ãã®å¹
ãå¶éããªãããã«ãããªãŒã§ããã«ãåé¢ã§ããŸãã

ã¡ãªã¿ã«ã Atom ïŒãŸãã¯VS Code ïŒãŠãŒã¶ãŒã¯ãããŒãã£ã³ã°ããã«ã䜿çšããããšèããŠããŸãããéçºè
ã¯Electronã®å¶éãçç±ã«æåŠããŸããã ãã®ãããããã¯SublimeãçŽæ¥ã®ç«¶åä»ç€ŸããåªããŠããå¯èœæ§ããããŸãã
èšå®ãã©ã°ã€ã³
Sublimeã«ã¯ ã100 ãè¶
ããã«ãŒãã«èšå®ïŒããŒãžã§ã³3.1.1ã®107ïŒãšã倿Žãããå€ã«å¯Ÿå¿ããããã®6ã€ã®è¿œå ã®éè€ã¬ãã«ããããŸãã
ïŒ1ïŒ Packages/Default/Preferences (<platform>).sublime-settings
ïŒ2ïŒ Packages/User/Preferences.sublime-settings
ïŒ3ïŒ <Project Settings>
ïŒ4ïŒ Packages/<syntax>/<syntax>.sublime-settings
ïŒ5ïŒ Packages/User/<syntax>.sublime-settings
ïŒ6ïŒ <Buffer Specific Settings>
700ã®å€ã®ããããªéšåïŒ7ã¬ãã«ã§100ã®ããŒïŒã®çŽç²ãªæå远跡ãåé¡ã«ãªãç¶æ³ãæ³åããã®ã¯ç°¡åã§ãã
Cudaã«ã¯ãã»ãŒ300ã®ã«ãŒãã«èšå®ãããããããããªãŒããŒã©ãããããããã®3ã€ã®è¿œå ã¬ãã«ããããŸãã
ïŒ1ïŒ settings/user.json
ïŒ2ïŒ settings/lexer <syntax>.json
ïŒ3ïŒ <File Settings>
åé¡ã¯åãã§ã-å€ãããå€ïŒæå€§300 * 4ïŒãèæ
®ããå¿
èŠããããŸãã ãŠãŒã¶ãŒãæ¯æŽããããã«ãããŒãã«å
ã®ãã¹ãŠã®ã¬ãã«ã®ãã¹ãŠã®èšå®ã衚瀺ãããã©ã°ã€ã³ããããæ€çŽ¢ãšç·šéãç°¡çŽ åããŸãã

Section
åã«æ³šæããŠãã ãã-èšå®ã¯ããªãŒããŒãã«å²ãåœãŠãããŸãã ããã«ããã远å ã®ãœãŒããšãã£ã«ã¿ãŒãæäŸãããŸãã ãã®ããªãŒãæ§ç¯ããããã®ããŒã¯ã¢ããã¯ã settings_default\default.json
ãã¡ã€ã«ã®èšå®ã³ã¡ã³ãã«å«ãŸããŠããŸãã ããšãã°ãã³ã¡ã³ã
ããã«ç¶ããªãã·ã§ã³ãUI/Listbox
ããŒãã«å²ãåœãŠãŸãã æšå
šäœãèŠãããšãã§ããŸã

Sublimeã§ã¯ãåæ§ã®ãã€ã¢ãã°ãå¯èœã§ãïŒ
- ååãš7ã¬ãã«ã®ãªãŒããŒã©ããã¯ã衚ã®8åã«ãããŸããã
- ãã©ãŒã ãšã³ã³ãããŒã«ã¯ãTkãŸãã¯ããé«åºŠãªPython GUIã©ã€ãã©ãªããååŸã§ããŸãã
- ãªãã·ã§ã³ã倿Žãããšããã¡ã€ã«ã倿Žãããä¿åæã«ãªããŒããããå¯èœæ§ããããŸãã
ããããªããš
軜埮ãªèŠæ
ãããã€ããããŸããããã¡ããããã§ã¯é©åãªå Žæã§ã¯ãªãã Sublimeæè¡ãµããŒããã©ãŒã©ã ã«ãããŸãã å®å
šãæããŠãã ããã
PgDn
/ PgUp
ã¯ãã³ãã³ããã¬ãããªã©ã®ãªã¹ããã€ã¢ãã°ã§ã¯æ©èœããŸããã- å€ãã®å Žåãç¢å°ãåæ°ãªã©ã®ããªãããŒãªæåãæ¿å
¥ããå¿
èŠããããŸãã ãã¹ãŠã®Unicodeæåã衚瀺/éžæããã®ã«ååãªããŒã«ããããŸããã Cudaã§ã¯ããã®ãããªããŒã«ã¯
Char map
ãã€ã¢ãã°ã®åœ¢åŒã§ãã

- åã
ã®ã«ã©ãŒã©ãã«ãèšå®ããæ¹æ³ã¯ãããŸããã å€ãã®ãã¡ã€ã«ãéããŠãããšãããããã®ããã€ãã®ã©ãã«ãè²ä»ãããããšããèŠæããã°ãã°ãããŸãã Cudaã§ã¯ã
Set tab color...
ã³ãã³ãã¯ã·ã§ãŒãã«ããã®äžã®ããŒã«ã«ã¡ãã¥ãŒã«ãããŸãã ãã®æ¹æ³ã§æ§æãããè²ã¯ãã»ãã·ã§ã³ã«ä¿åãããŸãã
ãããã«
ãã³ããåºãã®ã¯ç°¡åã§ãïŒ
ããããç§ã®æèŠã§ã¯ãäžèšã®èæ
®äºé
ã«ã¯ã¡ãªããããªãããã§ã¯ãããŸããã Sublime Textã®æ¬¡ã®ããŒãžã§ã³ã§äœã䟿å©ãªãã®ãããã°ã ããã§åé¡ãããŸããã ã¡ãªã¿ã«ã誰ããã¢ã€ãã¢ã翻蚳ããSkinnerïŒJon SkinnerïŒã«äŒãããããããŸããã