Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2012-03-28

SciTE + ExtMan

Я уже упоминал, что среди всех текстовых редакторов фаворитом у меня значится SciTE. И вот сегодня я открыл для себя знатное подспорье в автоматизации этого прекрасного редактора. Подспорье называется Scite Ext Man.

Это не очень длинный (460 строк) скрипт на Lua, который подключается в SciTE как стартовый, после чего становится очень легко цеплять свои функции за события редактора и создавать пункты меню с клавиатурными шорткатами.

Как это сделать. Сначала скачать пакет. Потом зацепить его за SciTE.

Делай раз — Options — Open User Options File.
ext.lua.directory=$(SciteUserHome)/lua/scite_lua
ext.lua.startup.script=$(SciteUserHome)/lua/extman.lua

В моем случае, скрипт автозагрузки я положил по путю
C:\Documents and Settings\v\lua\extman.lua
а все остальные луа-файлы я поместил в папку
C:\Documents and Settings\v\lua\scite_lua
Из этой папки будут автоматически загружаться все файлы с расширением lua.

Делай два — записал файл
c:\Documents and Settings\v\lua\scite_lua\v_cmd.lua
с содержимым
function replaceWinSlashes2Unix()
  local sel = editor:GetSelText()
  editor:ReplaceSel(string.gsub(sel, "\\", "/"))
end

function removeSpaces()
  local sel = editor:GetSelText()
  editor:ReplaceSel(string.gsub(sel, "%s", ""))
end

function ToggleMonospace()
  scite.MenuCommand(IDM_MONOFONT)
  return false
end

scite_Command 'Sel Replace Slashes|replaceWinSlashes2Unix|Shift+Ctrl+M'
scite_Command 'Sel Remove Spases|removeSpaces|Shift+Ctrl+Alt+M'

scite_OnOpen(ToggleMonospace)
что дало мне, после перезапуска редактора, две команды в меню Tools (одна переворачивает слеши, другая убирает пробелы, обе для выделенного текста) и одну интересную фишку.
Ради этой фишки я и занимался сегодня изысканиями, приведшими меня к SciteExtMan.
При открытии файла по умолчанию он теперь отображается моноширинным шрифтом.

Удивительно, но факт — в настройках самогО редактора сделать это невозможно, не потеряв возможности переключать моно/проп по Ctrl-F11. А по умолчанию, что тоже удивительно для программерского редактора, выставляется всегда отображение пропорциональным шрифтом.

Как видно из кода, цеплять обработчики событий и команды меню — проще пареной свеклы. И только потому, что в автозагрузку прописан SciteExtMan.

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)