Генериране на знаци, които не са на стандартната клавиатура
Тази страница описва как да генерирате произволни знаци с помощта на макро механизма в Notepad++ и OpenOffice.
След дълго търсене на проста, но функционално достатъчна програма за обработка на текстови файлове, се спрях на Notepad++ (http://notepad-plus.sourceforge.net/). Тази програма има някои функции за разширяване на функционалността, включително използване на макроси. За тези, които пишат текстове, съдържащи знаци с различни кодировки, може да е важно да създават текстови файлове във формат UTF-8 или Unicode-16. Такъв файл, който остава чисто текстов, т.е. не съдържа форматиращи елементи (с изключение на стандартните: абзац и табулатор), може едновременно да използва знаци от различни кодови страници, например кирилица и умлаути. И двете ще бъдат показани правилно.Макросите се създават с помощта на командите в менюто Macro. Процесът на запис на макрос е интуитивен. Името на макроса и, по избор, комбинацията от бързи клавиши се показват в долната част на списъка с команди на менюто.
Макросите се записват във файл "shortcuts.xml", който може да се редактира ръчно. Структурата на макроса се обяснява най-добре с пример.
Макрос за вмъкване на знак за абзац (тук са добавени номера на редове):
В ред (1) можете/трябва да посочите името на макроса ( name="" ), тъй като той ще се показва в менюто, както и да активирате клавишите, използвани в комбинацията: Ctrl, Alt, Shift. Key="" съдържа номера на символния ключ, използван за извикване на макроса. При Key="0" комбинацията от "горещи" клавиши не се задава и изборът на тази команда може да се направи изключително през менюто.
Валидни числа в Key="" са (поне отчасти) същите като числата с десетични знацив ASCII. Така че числата 48..57 съответстват на ключовете с числата 0..9; 65..90 - букви A..Z. Избраната от вас комбинация обаче няма да бъде активирана, ако тази комбинация вече се използва от самата програма. Например, ако комбинацията Ctrl+P е фиксирана за елемента от менюто Печат, тогава вмъкването на знак за абзац с него няма да е възможно. Преназначаването на „горещи“ клавиши може да се извърши в „Настройки-> Shortcut Mapper. ".
В ред (2) се интересуваме от кода на символа, съдържащ се в sParam="§" . В този случай това е "A7" (шестнадесетичен) или "167" (десетичен), което съответства на кодирането на ISO 8859-1 и Windows на знака за абзац "§". Така можете да вмъквате символи с числа 0..255 (00..FF). Въпреки това значението на символи с числа 128..255 може да зависи от избраната кодова страница; за знака за абзац и някои други обаче в повечето случаи това няма значение, но за кирилицата или умлаутите е точно обратното.
Notepad++ ви позволява да избирате между различни кодировки, като ANSI и UTF-8. ANSI/Windows - класическо кодиране с кодови страници, всеки знак е кодиран като един байт. UTF-8 използва от 1 до 4 байта в зависимост от знака. ANSI е достатъчен за показване на кирилица на компютър с българска версия на Windows или умлаути на компютър с немска версия.За да се показват умлаути от българската ОС (без допълнително преконфигуриране) или обратно, както и за едновременно показване на символи от различни азбуки, е необходимо многобайтово кодиране, тоест вмъкване на няколко байта вместо един. В системата UTF-8 символите с числа 0..127 остават еднобайтови, техните кодове са същите като ASCII кодовете. Знаците, които се появяват във втората половина (128..255) в ANSI, са кодирани с два байта.Това включва кирилица и специфични знаци от националните европейски азбуки (немска, френска, испанска и др.). Можете да видите повече за UTF-8, например: http://ru.wikipedia.org/wiki/UTF-8 (препоръчваме и статии по тази тема на други езици).
Например, да приемем, че искаме да генерираме символа от френската азбука ç (ç cedilla) с помощта на Alt+C. В ред (1) посочваме показваното име на макроса, задаваме Alt="yes" и номер на ключ Key="67" . Не забравяйте да деактивирате комбинацията Alt + C, ако вече се използва от програмата. След това търсим в таблиците описание на желания знак и намираме следното: