Аргументы
Аргументы - одно или несколько имен файлов (через пробел)
Например, clip_we *.prg clip_we a.prg b.prg ../include/i.ch
Меню
Меню вызывается по клавише ESC - это по умолчанию, при желании
можно поменять "горячие" клавиши. См. настройка
Работа с блоками
Редактор различает два типа блоков - строчный и прямоугольный. Отметка блока
очуществляется либо через меню, либо с помощью клавиатуры. "Горячие" клавиши
отметки начала/конца строчного блока F7, а прямоугольного F8.
Отмеченные блоки выделяются цветом, снять отметку блока можно либо отметив
новый блок, либо с помощью специальной команды через меню или нажав клавиши
Ctrl+P.
Блоки можно копировать, переносить, удалять, копировать в буфер обмена и вставлять
из буфера в другом окне, копировать блок из файла и записывать на диск.
При копировании строчного блока он помещается между текущей строкой и предыдущей,
а при копировании прямоугольного блока - начиная с текущей строки и колонки.
Перемещение отличается от копирования тем, что блок удаляется с прежнего места.
Удаление либо через меню, либо по "горячей" клавише Alt+Y. При этом
При копировании блока в буфер, прежнее содержимое буфера (если оно существовало)
уничтожается, блок остается помеченным и сохраняется в буфере при удалении блока
из текста вплоть до помещение в буфер нового блока или до завершения работы программы.
Вставка/удаление символов
Редактор поддерживает режимы вставки и замещения символов.
Перемещение курсора - клавиши <Up>, <Down>, <Left>, <Right>,
на страницу вверх/вниз - <PgUp>/<PgDown>,
в начало текста - <Ctrl+PgUp>,
в конец текста - <Ctrl+PgDown>,
на начало строки - <Home>,
в конец
строки - <End>,
удаление символа: над курсором - <Del>,
слева от курсора - - <BackSpace>,
удаление символов от текущего символа до конца строки - <Ctrl+Q>,
удаление символов от текущего символа до начала строки - <Ctrl+BS>,
удаление строки - <Ctrl+Y>,
удаление отмеченного блока - <Alt+Y>,
Поиск
Поиск (поиск с заменой) по шаблону, регулярному выражению с текущей позиции до
конца/начала текста, блока, или во всех окнах. Через меню или по "горячей"
клавише F6 вызывается объект "диалог", где и задается шаблон поиска,
режимы (только слово, учитывать регистр и пр), направление поиска (вперед, назад) и
где искать (текст, блок, во всех окнах). Продолжение
поиска - Ctrl+L - поиск вперед.
Поиск идентичных символов вперед/назад по тексту. В случае поиска одного из парных
символов { }, [ ], ( ), < > ищется пара для текущего.
Если это открывающая скобка, то ищется парная ей закрывающая. И наоборот.
Поиск структур по правилам CLIPPER:
Форматирование
Форматирование строки/абзаца по
заданным настройкам (ширина строки, отступ, перенос в словах ...)
Макроподстановки
Для быстрой и красивой работы придуманы шаблоны.
Шаблон представляет собой строку символов, которая по команде заменяется на более
сложную конструкцию - одну или несколько строк. Шаблоны и строки замены можно
конструировать по своему вкусу и желанию. Они хранятся в домашнем каталоге в директории
.clipв файле с именем .templ. Примеры и формат файла $HOME/.clip/.templ.
Макроподстановка отличается от шаблона тем, что по команде - выполнить макроподстановку -
выполняется команда clip'а и результат помещается в текст. Шаблоны макроподстановки и команды
замены берутся из файла $HOME/.clip/.macro
Рисование линий
С помощью редактора Вы можете рисовать простейшие таблицы символами псевдографики.
Для этого через меню или при помощи клавиатуры необходимо переключиться в режим
рисования (одиночные или двойные линии). Удерживая клавишу <Shift> используйте
для рисования клавиши перемещения курсора <Up>, <Down>, <Left>, <Right>
Настройка "горячих" клавиш
"Пользовательские кнопки" при старте загружаются из файла keymaps.po. Он
хранится в домашнем каталоге в директории ./clip и компилируется из файла
keymaps.prg Вы можете в соответствии со своими требованиями, желаниями и
настроениями настроить "горячие" клавиши. Это легко. См. пример ниже.
Пример файла keymaps.prg
/* User key_maps */ #include "inkey.ch" function init_user_key(key_maps) local k /* for debugger */ k:=key_maps:debug /* Код клавиши Команда */ k[ K_ESC ] :=HASH_CallMenu k[ K_F1 ] :=HASH_Help ......... /* for text editor */ k:=key_maps:edit /* Код клавиши Код Команда */ k[ K_ESC ] :=HASH_CallMenu // call Menu k[ K_ALT_X ] :=HASH_ExitSave // exit from editor witch save k[ K_ALT_B ] :=HASH_ExitNoSave // exit from editor witchout save k[ K_F1 ] :=HASH_HelpEdit // help /* file/window function */ k[ K_F2 ] :=HASH_SaveFile // save File k[ K_F3 ] :=HASH_OpenFile // open file k[ K_CTRL_F3 ] :=HASH_CreateNewFile // create new file k[ K_ALT_N ] :=HASH_NextWindow // open next window k[ K_ALT_P ] :=HASH_PrevWindow // open previous window // k[ ] :=HASH_ReadOnly // on/off read only options // k[ ] :=HASH_ListFiles // listing opening files // k[ ] :=HASH_CloseWindow // close current window // k[ ] :=HASH_Reload // reload file /* find function */ k[ K_F6 ] :=HASH_FindString // find string k[ K_CTRL_F6 ] :=HASH_FindReplace // find and replace string k[ K_CTRL_L ] :=HASH_FindNext // find string to forward // k[ ] :=HASH_FindPrev // find string to backward k[ K_CTRL_O ] :=HASH_MatchSymbolForward // matching symbol to forward k[ K_CTRL_T ] :=HASH_MatchSymbolBackward // matching symbol to backward /* move function */ k[ K_F4 ] :=HASH_GoTo // goto string k[ K_CTRL_F4 ] :=HASH_SavePos // save current string k[ K_CTRL_PGUP ]:=HASH_TopText // go top text k[ K_CTRL_PGDN ]:=HASH_BottomText // go bottom text /* edit function */ k[ K_F5 ] :=HASH_Template // insert template k[ K_CTRL_F5 ] :=HASH_Macro // insert macro k[ K_CTRL_Q ] :=HASH_DeleteEnd // delete string from current position to end k[ K_CTRL_BS ] :=HASH_DeleteBack // delete string from current position to begin string k[ K_CTRL_Y ] :=HASH_DeleteLine // delete line /* block function */ k[ K_F7 ] :=HASH_MarkBlockString // mark/unmark strings block k[ K_F8 ] :=HASH_MarkBlockRect // mark/unmark rectangle block k[ K_F9 ] :=HASH_CopyBlock // copy marked block k[ K_F10 ] :=HASH_MoveBlock // move marked block k[ K_CTRL_P ] :=HASH_CancelBlock //unmark block k[ K_ALT_Y ] :=HASH_DeleteBlock // delete marked block // k[ ] :=HASH_CopyClipboard // copy marked block to clipboard // k[ ] :=HASH_PasteClipboard // paste block from clipboard // k[ ] :=HASH_SaveBlock // save marked block as ... // k[ ] :=HASH_LoadBlock // load block from file k[ K_CTRL_U ] :=HASH_Undo // undo operation /* formatting function */ // k[ ] :=HASH_FormatLine // formatting line // k[ ] :=HASH_FormatPart // formatting part // k[ ] :=HASH_MoveString // move string to the center line /* other */ // k[ ] :=HASH_Options // editors options // k[ ] :=HASH_SingleGraphic // on/off single graphic mode // k[ ] :=HASH_DoubleGraphic // on/off double graphic mode // k[ ] :=HASH_MatchStructForward // find clipper-structure to forward // k[ ] :=HASH_MatchStructBackward // find clipper-structure to backward return key_maps
k[ K_ESC ] :=HASH_CallMenu // call Menuна:
k[ K_F10 ] :=HASH_CallMenu // call Menu
$(CLIPROOT)/bin/clip -e -p keymaps.prgИ получившийся .po скопировать в домашний каталог:
cp keymaps.po ~/.clip
Файл .templ хранится в домашнем каталоге пользователя в директории .clip
шаблон [Space|Tab] описание[/описание]
Символ [/] служит для деления на строки
Пример:
headf ******************************/*Function:/*Notes:/ /*** End of ********** headp ******************************/*File:/*Author:/*Date:/*Version:/*Notes:/ /*** End of ********** f For/Next c CLEAR * ****************************** IF If/EndIF I If/EndIF IE If/Else/EndIF D DO/EndDO DW DO WHILE/EndDO DC DO CASE/ CASE/ OTHERWISE/EndCASE .............
т.е. после подстановки, например, вместо шаблона DC должно получиться что-то вроде:
DO CASE CASE OTHERWISE EndCASE
****************************** *File: *Author: *Date: *Version: *Notes: *** End of **********
Файл .macro хранится в домашнем каталоге пользователя в директории .clip
шаблон [Space|Tab] функция
Пример:
d DATE() dd date_rus(date()) .............
т.е. после подстановки, например, вместо шаблона d должно получиться что-то вроде:
11/22/2000
22 Ноября 2000 г.