Система помощи позволяет работать со страницами man и GNU info. Для нормальной работы со страницами man необходима утилита whatis. При ее отсутствии простеший вариант может выглядеть так:
#!/bin/sh echo "$1( )"Для работы со страницами GNU info в системе должна быть установлена GNU info.
y - собственно редактор yhelp.html - текст системы помощи в синтаксисе HTML options - общие настройки keymap - раскладка клавиатуры colormap - настройка цветов colortrans - таблица трансляии цветов терминалов highlight - правила подсветки синтаксисов highlight_html - список тегов HTML с дополнительной информацией
Синтаксис настроечных файлов описан непосредственно в этих файлах в виде комментариев.
Исполняемый файл может находится в любом каталоге, указанном в переменной
окружения PATH. Остальные файлы стандартно находятся в каталоге
/usr/local/lib/yui. При необходимости можно переназначить их
местонахождение с помощью переменной окружения YUI_PATH.
Каталог $HOME/.yui/ является служебным, может хранить личные настройки
редактора и кзш, образуемый при работе с Сетью.
Сохранение статуса производится в каталог
Настройка на терминал может быть осуществлена по базам termcap или terminfo, рабочая база задается в файле настроек options.
Вся настройка редактора осуществлятся при помощи редактирования соответствующих файлов в каталоге /usr/local/lib/yui/ или точно таких же файлов в каталоге $HOME/.yui/
При отсутствии у терминала клавиши переключения на национальный алфавит
переключение можно осуществлять по ^J^N.
Аргументы
Аргументы - это либо имена файлов, либо URL для Web-окон. Возможные ключи
перед аргументами:
./y main.c ../prog/list.h ./y -r ../prog/list.h -M termcap.0 -b /bin/ls ./y -w ftp://ftp.itk.ru ./y -w http://www.itk.ru -w telnet://last.itk.ru ./y -w man:termcap -w info: ./y -w file: ./y -m termcap ./y -m "termcap(5)"
Любая операция может быть назначена на любую комбинацию клавиш. Клавиши ^J, ^K, ^J^K имеют специальный смысл -- одна и таже клавиша, нажатая после них, будет генерировать разный код.
Общие команды и управление окнами | |
^J^R | обновить экран |
^J^X | выход |
^K^X | выход с ошибкой |
Esc, ^J Esc, ^K Esc | меню |
F1 | помощь по контексту |
^J F1 | предыдущая помощь |
^K F1 | индекс помощи |
^J 0 или ^J * | список окон |
^E или ^J^E | следующее окно |
^W или ^J^W | предыдущее окно |
^C или ^J^C | закрыть окно |
^J^D | изменение размера окна |
^J^A | изменение положения окна |
^J^V | масштабирование окна |
F3 | открыть существующий файл |
^J F3 | открыть пустое окно |
^\ или ^J . | системная команда |
^J \ или ^K . | системная команда в терминальном окне |
^_ или ^J / или ^J F10 | меню пользователя |
^J F5 | вызов man |
^J F7 | терминальное окно |
^J F8 | открыть отладчик |
^J F9 | открыть Web-окно |
Команды в окне ТЕКСТОВЫЙ РЕДАКТОР | |
F2 | сохранить текст |
^J F2 | сохранить текст в новый файл |
F4 | переход на строку |
^J F4 | маркер строки для перехода |
^G | совпадающий символ ниже курсора |
^T | совпадающий символ выше курсора |
F7 | маркер строчного блока |
F8 | маркер колоночного блока |
^P | снять маркер блока |
F9 | копирование блока |
F10 | перемещение блока |
^J + | копирование блока в буфер обмена |
^J Del | перемещение блока в буфер обмена |
^J Ins | копирование блока из буфера обмена |
^Y | удаление строки |
^J^Y | удаление блока |
^J^B | установить/снять точку останова |
^J^L | ввод символа по коду |
^K^V | режим просмотра пробелов и табуляций |
^K^L | перезагрузить текст |
^K^R | установить/снять режим "только чтение" |
^U | откат |
^R | обратный откат |
F5 | вызов man по текущему слову |
F6 | поиск |
^L | продолжение поиска |
^J F6 | поиск с заменой |
Команды в окне Web-клиент | |
g | новый URL |
/ | информация о ссылке |
s | поиск если страница допускает зто |
r | перечитать страницу |
i | прерывание запроса |
d | скачать исходник страницы/ссылки |
o | показать исходник страницы |
- | предыдущая страница |
m | главная страница |
h | история |
^A | следующий кадр |
^X | предыдущий кадр |
Tab или ^J Down | на следующую ссылку |
^J Up | на следующую ссылку |
^J Home | к первой ссылке |
^J End | к последней ссылке |
^J PgUp | к началу текста |
^J PgDn | к концу текста |
F6 | поиск по тексту |
F7 | выделение строчного блока |
F8 | выделение колоночного блока |
^J + | вставка выделенного блока в буфер |
Команды в окне ТЕРМИНАЛ | |
^J Tab | мягкий/жесткий режим курсора |
^K^F | режим получения ввода (первый/последний) |
F7 | маркер строчного блока |
F8 | маркер колоночного блока |
^P | снять маркер блока |
^J + | копирование блока в clipboard |
^J Ins | копирование блока из clipboard |
Для sh
$ http_proxy=http://last.itk.ru:3128/
$ export http_proxy
Для csh
$ setenv http_proxy http://last.itk.ru:3128/
Над окнами можно производить операции по переключению, изменению размеров, перемещению. Возможно перемещение окна за пределы экрана, в этом случае все операции будут выполняться так же, но без визуального контроля.
При вызове объекта диалога Список окон можно увидеть список всех открытых окон. Активное окно помечено выделенным цветом. Клавишей Del можно закрыть любое окно, клавишей Ins можно выделить несколько окон и в последующем переключения будут возможны только между ними. Клавишей Enter можно активизировать любое окно.
Раскладку клавиатуры по умолчанию можно посмотреть здесь.
Операции с файлами
Редактор позволяет редактировать любые файлы. Если файл не текстовый,
он предоставляется к просмотру/редактированию в виде строк по 64 символа.
Символ с кодом меньше 32 помечен другим цветом и виден как символ код+64.
Выбор файла осуществляется с помощью объекта диалога. С его помощью можно просмотреть содержимое любого каталога диска и выбрать нужный файл. объект содержит информацию о текущем состоянии каталога, количестве файлов, их суммарном размере, о текущем файле (размер, дата создания и т.д.).
При сохранениии текста в окне редактора текст сохраняется на диске под своим
именем. Если имени нет, выводится запрос на имя. Если в настройке редактора
отключено создание BAK-файлов, то старый вариант уничтожается. Если на диске
уже есть файл с таким именем, выдается предупреждение и запрос о последующих
действиях (переписать или прервать операцию записи).
Операции с блоками
Имеется два типа блоков -- строчный и колоночный. Пометка осуществляется
установкой двух маркеров (через меню или с клавиатуры). Текст, относящийся
к блоку, показывается выделенным цветом. Перемещение границ блока
осуществляется клавишами перемещения курсора при одном установленном маркере.
Установка второго маркера фиксирует границы блока. Блок можно
копировать, перемещать и удалять в текущем окне, копировать и перемещать в
другие окна с помощью буфера обмена, записывать на диск и считывать с диска.
При копировании строкового блока он вставится между строкой, на которой стоит курсор и вышележащей строкой. Если отмечен прямоугольный блок, он будет вставлен в строки, начиная от текущей и с позиции, на которой стоит курсор.
Перемещение аналогично копированию, но на старом месте блок удаляется.
При копировании или перемещении в буфер, блок копирутся в буфер обмена,
в котором сохраняется и в том случае, если в тексте блок удален. Блок можно
добавлять в буфер, при этом старое содержимое буфера не теряется. Буфер
обмена можно редактировать.
Откат
Эта операция позволяет восстанавливать те изменения, которые были внесены в
текст в текущем сеансе работы. Восстановление идет последовательно в обратном
порядке. Запоминаемое количество шагов определяется в настройке. Обратный
откат восстанавливает изменения, сделанные откатом. В настройке можно включить оптимизацию отката, при этом будет запоминаться
большее количество шагов за счет выполнения одинаковых операций за один шаг.
Поиск
Искомая строка и правила поиска задаются объектом диалога. Искомая строка
может быть регулярным выражением. В правилах задается
чувствительность к регистру букв, направлению поиска, месту поиска и т.д.
Возможен поиск во всех окнах типа редактор.
Поиск с заменой
Строка для поиска, строка для замены, правила поиска и правила замены
определяются объектом диалога. Строка для поиска может быть регулярным выражением.
Строка для замены может содержать в себе условные обозначения искомых
регулярных выражений в виде \n, где n - номер выражения.
Пример:
Строка в тексте: У меня есть компьютер
Строка для поиска: (У.*ь) (к.*р)
Строка для замены: \1 хороший \2
В результате получится: У меня есть хороший компьютер
В стоке состояния указывается количество произведенных замен. Поиск с
заменой возможен во всех окнах типа редактор.
Отладчик C/C++
Более подробно - изучайте GNU debugger.
Редактор позволяет запускать отладчик gdb в окне и использовать выходную информацию gdb для отслеживания кода программы. После запуска необходимо задать имя программы для выполнения/отладки и имя терминала, на котором будет выполняться программа. Имя программы задается командой file, например: file _файл_, при этом _файл_ должен быть скомпилирован с опцией -g.
Для задания терминала надо его открыть, посмотреть его имя командой tty и запустить на нем что-нибудь вроде sleep 3000, чтобы ничто не мешало выполнению программы. Затем дайте команду tty _имя_терминала_, например tty /dev/ttyp5. Теперь можно ставить точки останова и запускать программу.
Есть возможность автоматической загрузки команд в gdb. Для этого надо
надо создать файл
Некоторые команды gdb:
r[un] ...................... запуск/рестарт программы
c[ontinue] ................. продолжение выполнения
b[reakpoint] имя_функции ... точка остнова на функцию
b имя_файла:номер_строки ... точка остнова на строку
s[tep] ..................... шаг программы
n[ext] ..................... шаг программы без захода в функции
u[ntil] имя_функции ........ выполнение до выхода из функции
p[rint] выражение .......... печать значения выражения
q[uit] ..................... выход из отладчика
Меню пользователя
Эта функция позволяет пользователю быстро запускать программы, используемые
в повседневной работе. Основа меню пользователя - файл yui.mnu, имеющий
например такой вид:
yui: start /usr/local/bin/y yui: compile make 2>&1 | tee _r #reload _r yui: recompile make clean make 2>&1 | tee _r #reload _r syncing disks sync show processes ps aux >Demos Commander deco
Строка, которая должна быть выведена в объект диалога, должна начинаться от начала строки (не с табуляции или пробела). Строки, начинающиеся с табуляции или пробела, являются системными командами или директивами редактора, которые будут исполнены при выборе соответствующей строки. Директива #reload file перезагружает file в окно редактора. Если файл был ранее в одном из окон, то файл будет прочитан заново в это же окно. Если файла не было ни в одном из окон, то будет открыто новое окно. Если строка описания команды начинается с символа >, то соответсвующие команды будут исполнены в автоматически созданном окне, которое закроется при завершении исполнения последней команды.
Поиск файла yui.mnu осуществляется сначала в текущем каталоге,
а при неудаче в стартовом каталоге пользователя. При отсутствии файла
выдается соответствующее предупреждение.
Калькулятор
Калькулятор поддерживает стандартные операции с числами с плавающей
точкой. Работает в двочной, восьмиричной, десятичной и шестнадцатиричной
системах исчисления, производит операции над датами.
Регистры калькулятора:
X(ввод), Y(результат), M(память)
Математические операции:
+ - сложение, - - вычитание, * - умножение, / - деление, ^ - возведение в степень, % - остаток от деления
Битовые операции:
| - побитовое ИЛИ, ! - побитовое исключающее ИЛИ, & - побитовое И, ~ - побитовое НЕ
Прочие операции:
F10 - переключатель между двоичной (BIN), восьмиричной (OCT), десятичной (DEC) и шестнадцатиричной (HEX) системами исчисления.
PgDn - поместить значение из регистра X в регистр M.
PgUp - поместить значение из регистра M в регистр X.
^Y - очистить строку ввода.
Системная команда
При вводе команды в предложенную строку ввода и нажатии Enter будет исполнена
соответствующая команда. По окончании ее исполнения появится строка
Press any key to return to YUI ...и при нажатии любой клавиши произойдет возврат в редактор.
Регулярные выражения используются для задания множества символьных строк. Элементы этого множества соответствуют регулярному выражению. Регулярные выражения могут содержать следующие символы со специальным смыслом: ^, $, ., *, [, ], \, ?, +. Символы, не являющися метасимволами, определяют сами себя. При описании регулярных выражений под символом подразумевается любой символ, отличный от символа перевода строки.
Регулярные выражения могут заключаться между двумя произвольными одинаковыми символами - ограничителями регулярного выражения. Если в данном регулярном выражении какой-либо символ используется в качестве ограничителя, внутри регулярного выражения он должен экранироваться предшествующим символом \. Ниже перечислены регулярные выражения, включающие метасимволы, и соответствующие им строки символов:
.
Один произвольный символ.
\c
Символ c, где c - произвольный символ, кроме цифры и скобок.
[...]
Один символ из числа перечисленных в скобках. Пара символов в скобках, разделенных символом -, означает символ из указанного диапазона. Если символ ^ является первым из перечисленных в скобках, регулярному выражению соответствует любой символ, не входящий в число перечисленных в скобках. Внутри скобок символы ., *, [ и \ теряют свой специальный смысл.
*
Произвольное число (в том числе ноль) повторений регулярного выражения, стоящего перед *.
(RE)
Регулярное выражение RE. Запись типа \n, где n - число, соответствует n-ой части регулярного выражения, заключенного в ( и ); отсчет частей слева направо по символам ( в пределах одного регулярного выражения. Символ | обозначает операцию или для двух регулярных выражений.
^
Символ, обозначающий начало строки, если он стоит в начале регулярного выражения.
$
Символ, обозначающий конец строки, если он стоит в конце регулярного выражения.
+
Одно или более повторений регулярного выражения, стоящего перед +.
?
Одно или ни одного повторения регулярного выражения, стоящего перед ?.
Конкатенация регулярных выражений означат максимальную по длине последовательность символов, определяемых первым выражением, за которой следует последовательность символов, определяемых вторым выражением.