Редакторът SciTE

SciTE е малък по обем, но функционално богат текстов редактор, направен така, че да може лесно да се пригажда като среда за програмиране на множество езици. Вариантът на SciTE за Windows заема около 1MB дисково пространство, а работната му конфигурация се състои от само няколко файла. Не изисква инсталиране: използва се „както е“.

SciTE е изработен на основата на широкоизвестната библиотека от редакторски функции Scintilla. Редица съвременни и широкопопулярни текстови редактори, среди за програмиране и други програми – сред тях напр. Code::Blocks, Geany, Komodo Edit, Anjuta, ChIDE и Notepad++ – също ползват тази библиотека, но SciTE е дело именно на автора на Scintilla и в този смисъл е „марковият продукт на майстора“ на библиотеката и нейно основно, „канонично“ въплъщение.

Функциите на SciTE се управляват чрез конфигурационни файлове и дори могат да бъдат (пре)програмирани. Последното става чрез популярния език за програмиране Lua, копие от компилатора на който е вградено в редактора.

Копието на SciTE, което предоставям за целите на подготовката и провеждането на състезания по програмиране, е усъвършенствано и настроено като среда за програмиране именно на C и C++, с използване на компилатора gcc. Наред с това конфигурацията му е опростена максимално, като са премахнати възможности за писане на други езици за програмиране и някои други несъществени за посочените цели части. Предвид това използвайте подготвеното от мен копие [2], а не редактора с оригиналните настройки, който ще намерите на уебстраницата на SciTE [1].

Ето някои от възможностите на редактора-среда.

  • Търсенето в текст може да бъде динамично (incremental search), т.е. да се показва резултатът успоредно със задаване или редактиране на низа, който се търси.
    Търсенето може да става, освен по непосредствено зададен низ, също и чрез регулярен израз.
  • В текста може да се задават отбелязки (bookmarks), така че лесно да се стига до съответните места.
  • Автоматично дописване: редакторът дописва всеки къс низ до дума, която вече се среща в текста. Когато има няколко думи с общо начало, продължението може да се избере.
  • Има възможност за запомняне на „работна сесия“ – съвкупност от няколко файла, така че да се отварят едновременно. (Нещо като понятието „проект“ в някои среди за програмиране, но в опростен вариант.)
  • Скриване/показване (folding/unfolding) на части от текста, например функции в програма.
  • Правоъгълно избиране на текст (освен поточно).
  • Синтактично оцветяване на текст на програма. (В случая става дума за програми на C и C++. За да работи оцветяването, в менюто Language трябва да бъде избрано C/C++. Това автоматично е изпълнено, когато файлът, с който се работи, има разширение на името, съответно на някой от тези два езика, но в друг случай следва да се направи ръчно.)
  • Автоматично подравняване на текст на програма при писане.
  • Възможност за компилиране и свързване и за пускане на програма непосредствено в редактора (двете действия могат да се изпълнят и обединено).
    Според разширението на файла се определя дали да се компилира като програма на C или C++, което при текущата настройка става съответно с повикване на gcc или gxx. (За програми на C++ се приемат файлове с разширение c++, cc, cpp или cxx.)
  • И компилирането, и пускането стават не в отделен DOS-прозорец, а в подпрозорец на редактора, който играе ролята на такъв: псевдоконзола.
    Евентуалните съобщения за грешки при компилиране се показват заедно с подходящо оцветяване на съответното място в текста на програмата.
  • Псевдоконзолата може да се показва/скрива избирателно, и също по избор да се поставя отдолу или отдясно на основния текст – както е по-удобно в даден момент.

Допълнителна, много подробна справочна информация за редактора може да се намери чрез втората (не първата) команда на менюто Help или като се чете направо файлът SciTEDoc.html и другите файлове във формат HTML.

Ето и по-важните клавишни комбинации за използване на SciTE като редактор и особено като среда за програмиране. Всички те могат да бъдат открити чрез преглеждане на командните менюта. Тук ги привеждам, от една страна, за удобство на този, за когото редакторът е още нов, а от друга – за да обърна внимание на някои полезни възможности при боравене с текст, които не са типични или се срещат в друг вид в други редактори.

Работа с файлове като цяло
(обичайните действия – с обичайните клавишни комбинации)

Ctrl-O отвори файл
Ctrl-N отвори нов файл
Ctrl-Tab иди в следващия отворен файл
Ctrl-S запиши файла
Ctrl-W излез от файл

Основни редактиращи действия
(с обичайните клавишни комбинации)

Ctrl-C запомни избран текст (copy)
Ctrl-X изтрий и запомни избран текст (cut)
Ctrl-V копирай запомнен текст (paste)
Ctrl-A избери всичко
Ctrl-Z отмени редакция (undo)
Ctrl-Y върни редакция (redo)

Допълнителни действия с редове

Ctrl-L изтрий реда
Ctrl-D дублирай реда
Ctrl-T размени реда с горния

Специфични редактиращи действия

Ctrl-E иди на съответната скоба
Ctrl-Shift-E избери до съответната скоба
Ctrl-Q коментирай/разкоментирай като част от програма текущия ред или избран текст
Ctrl-Enter покажи меню от възможности за допълване на дума

Действия с псевдоконзолата,
поправяне на синтактични грешки

F8 скрий/покажи псевдоконзолата
Ctrl-F6 иди от основния текст в псевдоконзолата или обратно
F4 намери следващата синтактична грешка (след компилиране)
Shift-F5 изчистѝ псевдоконзолата

Компилиране и изпълняване на програмата
(менюто Tools на редактора)

F7 компилирай и направи изпълним файл (.exe)
F5 изпълни програмата; ако е нужно, първо я създай както при F7
Ctrl-1 изпълни програмата с пренасочване на входа от файл in
Ctrl-2 изпълни програмата с пренасочване на входа от файл in и на изхода към файл out
Ctrl-3 изпълни програмата с пренасочване на входа от избран текст
Ctrl-4 изпълни програмата с пренасочване на входа от избран текст и на изхода към файл out
Ctrl-5 стартирай DOS в псевдоконзолата (така програмата може да се изпълнява и по други начини, освен предвидените по-горе);

Внимание! Стартираният чрез последната команда DOS впоследствие трябва да бъде изрично „завършен“, което може да стане по един от трите начина: с команда exit от псевдоконзолата, с клавишната комбинация Ctrl-Break или с командата Stop Executing от менюто Tools на редактора. Понеже завършването лесно се забравя, като правило, добре е стартирането на DOS да се избягва – обикновено някоя от предходните команди е и по-подходяща.

Също да се има предвид, че псевдоконзолата не позволява да се предаде правилно сигналът Ctrl-Z за край на вход. Затова програма, която (в цикъл) чете неопределено дълъг вход непосредствено от клавиатурата в псевдоконзолата няма да работи правилно. Ако това се случи, вероятно ще се наложи да прекъснете стартираната програма, както по-горе бе обяснено във връзка със завършване на стартиран DOS. За избягване на такива случаи ползвайте кое да е от Ctrl-1, Ctrl-2, Ctrl-3 и Ctrl-4, или пък Ctrl-5 с пренасочване на входа от кой да е файл.

При четене на отнапред фиксиран обем входни данни псевдоконзолата няма особености в сравнение с истинска конзола.

Препратки

  1. Главна страница на редактора SciTE
  2. Архив на SciTE за Windows, подходящо конфигуриран за програмиране на C и C++

—Б.Б.