Command: elvis клон редактора vi Синтаксис: elvis [Rerv] [t tag] [file] ... Флаг: R Только для чтения Флаг: e Запуск эмуляции искл. Флаг: r используется вместо elvrec Флаг: t Начало редактирования с данным тегом Флаг: v Запускает эмулятор vi Пример: elvis # вызывает редактор Пример: elvis prog.c # редактирует prog.c Elvis - полноэкранный редактор, смоделированный на базе известного Беркли редактора vi. Имеет тотже пользовательский интерфейс, что и vi, однако исходный код другой и написан "с нуля". В документе приведены краткие сведения о vi. Материал не предназначен в качестве обучающей программы для новичков. Более подробны сведения охвачены большинством UNIX книг посвященных vi. Как и vi, elvis может использоваться в качестве экранного редактора (vi mode) или редактора строк. Право выбора режима остается за нами. Все обращения идут к одному и тому же файлу. Vi Команды Ниже представлен список команд поддреживаемых vi. Следующие параметры поддреживаются: count целочисленный параметр показывающий сколько и как много key характерный признак команды inp диалог ввода-вывода mv расширенные возможности команд delete и change: ( предыдущее предложение ) следующее предложение { предыдущий параграф } следующий параграф (разделенный пробелом, .PP, .LP, .IP и др.) [ предыдущая секция (вида .SH или .NH) MOVE включает также команды используемые mv EDIT эта команда затрагивает текст и может неоднократно использоваться В дополнение к вышеупомянутому примечанию, знак вставки (^) используется как сокращение для CTRL. Например, ^A означает CTRL-A. Count Команда Описание Тип ^A (не определена) ^B перемещение к вершине файла ^C (не определена) count ^D прокрутка вниз( по умолчанию на 1/2 экрана) count ^E прокрутка строк ^F переход к началу файла ^G показывает состояние файла и текущую строку count ^H переход влево, подобно h MOVE ^I (не определена) count ^J перемешение вниз MOVE ^K (не определена) ^l перерисовка (обновление) экрана count ^M переход к началу следующей строки MOVE count ^N перемешение вниз MOVE ^O (не определена) count ^P перемешение вверх MOVE ^Q (не определена) ^R перерисовка (обновление) экрана ^S (не определена) ^T (не определена) count ^U прокрутка вверх( по умолчанию на 1/2 экрана) ^V (не определена) ^W (не определена) ^X (не определена) count ^Y перемешение вниз ^Z (не определена) ESC (не определена) ^\ (не определена) ^] переход по имени тега, к соответствующему тегу ^^ сохраняет данный файл и редактирует предыдущий ^_ (не определена) count SPACE переход вправо, подобно l MOVE ! mv выбор строки согласно фильтра " key выбор из буфера для дальнейшего использования # (не определена) $ переход в конец текущей строки MOVE % переход согласно (){}[] символу MOVE & (не определена) ' key переход к выделенной строке MOVE count ( переход в конец count предложения MOVE count ) переход count в начало предложения MOVE * (не определена) count + переход к началу следующей строки MOVE count , повтор предыдущего (другого) пути MOVE count переход к началу предыдущей строки MOVE . повтор предыдущей команды редактирования / поиск текста вперед по заданному выражению MOVE 0 если не часть графы, переход к первому символу этой строки MOVE 1 часть графы 2 часть графы 3 часть графы 4 часть графы 5 часть графы 6 часть графы 7 часть графы 8 часть графы 9 часть графы : применяется вместе с командами count ; повтор предыдущей команды MOVE count < mv сдвиг текста влево EDIT = (не определена) count > mv сдвиг текста вправо EDIT ? text поиск текста назад по заданному выражению MOVE @ (не определена) count A inp вставка в конец строки EDIT count B переход к слову назад MOVE C inp замена текста от курсора до конца строки EDIT D удаление текста от курсора до конца строки EDIT count E переход в конец слова MOVE count F key переход влево к данному символу MOVE count G переход к строке #count (значение по умолчанию - нижняя строка) MOVE count H переход в начало текста (строка вверху экрана) count I inp вставка в начало строки (после отступов) EDIT count J объединение строк EDIT K поиск по ключевому слову count L переход к последней строке (строка внизу экрана) M переход к середине строки N повтор предыдущего поиска, но противоположным путём MOVE count O inp открытие новой строки выше текущей строки EDIT P вставка текста перед курсором Q выход в EX режим R inp переписать EDIT count S inp изменение строки count T key переход влево, к искомому слову MOVE U отмена всех недавно сделанных изменений относительно текущей строки V (не определена) count W перемещение слов MOVE count X удаление символов слева от позиции курсора EDIT count Y выделенный текст копируется в буфер Z Z сохранение файла и выход [ [ перемещение назад на 1 раздел MOVE \ (не определена) ] ] перемещение вперед на 1 раздел MOVE ^ перемещение к началу текущей строки (после отступа) MOVE _ (не определена) ` key переход к выделенному символу MOVE count a inp вставка текста после позиции курсора EDIT count b перемещение слов MOVE c mv изменение текста EDIT d mv удаление текста EDIT count e перемещение в конец текущего слова MOVE count f key перемещение вправо к данному символу MOVE g (не определена) count h переход влево MOVE count i inp вставка текста EDIT count j переход вниз MOVE count k переход вверх MOVE count l переход вправо MOVE m key выделение строки или символа n повторение предыдущего поиска MOVE count o inp открывает новую строку ниже текущей строки EDIT p втсавка текста q (не определена) count r key замена символов EDIT count s inp замена символов текстом пользователя EDIT count t key перемещение вправо к данному символу MOVE u отмена предыдущей команды редактирования v (не определена) count w перемещение слов MOVE count x удаление символа с позиции курсора EDIT y mv копирование текста в буфер z key прокрутка экрана count { перемещение параграфов MOVE count | перемещение в столбец (крайний левый столбец -1) count } перемещение параграфов MOVE count ~ переключение на заглавные и строчные буквы EDIT DEL (не определена) Ex Команды Ниже приведен список поддерживаемых ex команд. Многое сокращено. Общие [line] append args [files] cd [directory] chdir [directory] [line][,line] change [line][,line] copyline [line][,line] debug[!] [line][,line] Delete['x] edit[!] [file] ex[!] [file] file [line][,line] global/regexp/ command [line] Insert [line][,line] join [line][,line] list map[!] key mapped_to [line] mark x mkexrc [line][,line] Moveline next[!] [files] Next[!] previous[!] [line][,line] print [line] put ['x] quit[!] [line] read file rewind[!] set [options] [line][,line] substitute/regexp/replacement/[p][g] tag[!] tagname [line][,line] toline Undo unmap[!] key validate[!] version [line][,line] vglobal/regexp/ command visual wq [line][,line] write[!][[>>]file] xit[!] [line][,line] yank['x] [line][,line] !command [line][,line] < [line][,line] = [line][,line] > Входящий текст [line] append [line][,line] change ['x] [line] Insert Команда (a)ppend вставляет текст после указанной строки. Команда (i)nsert вставляет текст перед указанной строкой. Команда (c)hange копирует диапазон строк (вырезает) в буфер, удаляя из текущего места. Вырезать / Вставить [line][,line] Delete ['x] [line][,line] yank ['x] [line] put[!] ['x] [line][,line] copy line [line][,line] to line [line][,line] Move line Команда (d)elete копирует указанный диапазон строк в буфер и затем удаляет их. Команда (y)ank копирует указанный диапазон строк в буфер, но не удаляет их. Команда (pu)t вставляет текст из буфера после указанной строки в нужное нам место. Команды (co)py и (t)o позволяет скопировать строки и вставить их в определенное место. Команда (m)ove удаляет указанный диапазон строк и немедленно вставляет их после некоторой другой строки, перемещает текст. Отображение текста [line][,line] print [line][,line] list Команда (p)rint отображает указанный диапазон строк. Команда (l)ist также отображает текст, но при этом делает символы управления видимыми. Глобальные операции [line][,line] global /regexp/ command [line][,line] vglobal /regexp/ command Команда (g)lobal производит поиск среди строк указанного диапазона (или по всему файлу, если диапазон неопределен)по заданному искомому выражению. Таким образом происходит перемещение курсора в каждую из этих строк и выполнение неких операций с ними. Команда (v) схожа с предыдущей, но выполняет обратную операцию, ищет строки, в которых нет заданного искомого выражения. Редактирование строк [line][,line] join [line][,line] ! program [line][,line] < [line][,line] > [line][,line] substitute /regexp/replacement/[p][g] Команда (j)oin связывает все строки указанного диапазона вместе, формируя одну большую строку. Если определена только одна строка, то она автоматически будет объединена со следующей. Команда ! запускает внешнюю программу фильтра и использует при этом указанный диапазон строк. Строки будут заменены значениями фильтра. Типичный пример ':'a,'z!сортировка -n' сортирует 'a,'z согласно их числовым значениям. Команды < и > сдвигают влево или вправо указанный диапазон строк, обычно на 1 символ табуляции. Опция 'shiftwidth' определяет величину смещения. Команда (s)ubstitute ищет нужное выражение в каждой строке и заменяет его заданным текстом. Параметр 'p' печатает измененные строки, а параметр 'g' позволяет заменить сразу все найденные выражения.(Без параметра 'g' будет заменено только первое найденное выражение). Назад undo Команда (u)ndo отменяет последнюю операцию, которая была применена к тексту. Конфигурация и Состояние map[!] [key mapped_to] unmap[!] key set [options] mkexrc [line] mark x visual version [line][,line] = file Команда (ma)p позволяет сконфигурировать elvis, определить и назначить функциональные (горячие) клавиши. Обычно это возможно только в визуальном командном режиме, но используя параметр [!] мы можем отобразить все знаковые (функциональные) символы. Если команда указана без параметров, будет показана таблица, отображающая реальное состояние и настройки. Если заданы оба параметра, первый - показывает функциональное назначение, второй - то значение, которое обрабатал elvis. Команда (unm)ap удаляет определения, сделанные через команду (ma)p. Команда (se)t может быть использована в различных случаях. Без аргументов, команда отображает значения параметров которые были изменены. Выполнение команды с аргументом 'all' отобразит значения всех параметров, независимо от того, были ли они явно установлены или нет. Иначе, аргументы рассматривают как варианты, которые будут установлены. Команда (mk)exrc сохраняет текущую конфигурацию в файле названом .exrc в текущем каталоге. Команда mar(k) определяет установленный маркер, чтобы обратиться к определенному месту в файле. Этот маркер может использоваться позже, чтобы определить строки для других команд. Команда (vi)sual переводит редактор в визуальный режим. Таким образом elvis будет запущен в режиме эмулятора vi. Команда (ve)rsion отобразит текущую версию elvis Команда = покажет какие стороки или диапазон строк Вы определили, количество и нумерацию. Команда file покажет информацию о файле, был ли он изменен, число строк в файле. Работа с несколькими файлами args [files] next[!] [files] Next[!] previous[!] rewind[!] Когда Вы вызываете elvis из командной строки, любые имена файлов переданные elvis в качестве аргументов, будут сохранены в списке аргументов. Команда (ar)gs отобразит этот список или определит новый. Команда (n)ext служит переключателем от текущего файла к следующему в списке аргументов. Также, Вы можете здесь определить новый список аргументов. Команда (N)ext и (pre)vious (являются родственными командами)являются переключателями от текущего файла до предыдущего файла в списке аргументов. Команда (rew)ind является переключателем от текущего файла, до первого файла в списке аргументов. Переключение (выбор) Файлов edit[!] [file] tag[!] tagname Команда (e)dit является переключателем от текущего файла до некоторого другого файла. Команда (ta)g ищет имя данного тега в файле, названном 'tags' (признаки). Таким образом, по имени тега можно найти необходимый файл. Выход quit[!] wq xit Команда (q)uit позволяет выйти из редактора без сохранения файла. Команды (wq) и (x)it идентичны и позволяют выйти из редактора сохранив изменения. Файлы входные/выходные [line] read file [line][,line] write[!][[>>]file] Команда (r)ead получает текст от другого файла и вставляет это после указанной строки. Команда (w)rite записывает в файл или же часть него в некоторый другой файл. Флаг ! позволит произвести запись строк, даже если будет установлено параметр только для чтения. Директория (каталог) cd [directory] chdir [directory] shell Команды (cd) and (chd)ir позволяют епреходить из одной дирректории в дургую. Команда (sh)ell запускает командный интерпретатор ( shell оболочку). Отладка [line][,line] debug[!] validate[!] Эти команды доступны только в том случае, если elvis скомпилирован с флагом -DDEBUG. Команда de(b)ug показывает статистику блоков, которые содержат указанный диапазон строк. Если присутствует !, то содержание этих блоков также будет показано. Команда (va)lidate проверяет определенные переменные для внутренней последовательности, правильность. Как правило, она не используется пока не будет обнаружена какая-либо проблема. Дополнения В дополнение к стандартным командам, elvis обладает разнообразием дополнительных особенностей, которые не присутствуют в редакторе vi . Они описаны ниже. .exrc Elvis, при открытии файла отобразит файлы домашнего каталога $HOME. После этого работа осуществляется .exrc из текущего каталога, который при необходимости может быть изменён на другой. :mkexrc :mk Команда EX сохраняет установленные :set and :map конфигурации в фале '.exrc' текущей директории. :args :ar Вы можете использовать команду :args чтобы определить новый список аргументов: :args *.h После того, как Вы определите новый список аргументов args, при выходе, в следующий раз, команда :next elvis переключится к первому файлу нового списка. :Next :previous :N :pre Эти команды позволяют переместиться назад к списку аргументов. zz В VI, команда 'zz' (в нижнем регистре) расположит текущую строку по центру экрана, например 'z=". . Изначально установлено значение для . , определяемое как повтор. Однако Вы можете изменить это значение как пожелаете. Например, если '3dw', то '.' будет удалять 3 слова, если '5.' то удалится 5 слов. " Последний набранный текст или выполненная команда, будут сохранены в буфере. Вы можете использовтаь эту возможность, используя при этом команды 'p' или 'P' следующим образом: ".p K Вы можете переместить курсор на слово и нажать, shift-K, чтобы иметь возможность воспользоваться справкой elvis для поиска нужного слова. input Вы можете возвратиться назад к началу строки. При нажатии CTRL-A, текст, который Вы вводили в прошлый раз, будет вставлен. Вы сможете возвратиться к режиму input, вернуться к другому фрагменту или добавить новый.(Это похоже на CTRL-@ в настоящем vi, за исключением того, что CTRL-A действительно будет работать). В действительности vi может запомнить только 128 входящих симолов, но elvis запоминает любое количество. :set charattr :se ca Elvis может отобразить характерные вид и стили представления символов на экране при редактировании. Следующий пример демонстрирует некоторые из установленных значений: normal boldface italics Примечание: для того, чтобы это работало, Вы должны скомпилировать elvis без флага DSET_NOCHARATTR. Недочеты и упущения Несколько особенностей, отсутствующих в редакторе vi.В режиме замены, замененный текст не будет сохранен, а просто переписан. Длинные строки отображаются по-другому - где реальный vi возвратил бы длинную строку в несколько рядов экрана, elvis просто показывает часть строки, и позволяет Вам использовать прокрутку экрана, чтобы позволить видеть остальную часть текста. Команды ':preserve' and ':recover' отсутствуют, как и r флаг. Фактически ':Preserve" никогда не используется и начиная с использования ':recover\* (вследствие редкого применения, выделено в виде отдельной программы. Нет никакой потребности загружать код восстановления в память каждый раз, когда Вы редактируете файл. Поддержка языка обработки списков LISP отсутствует. Команды '@' и ':@' отсутствуют. Вы не можете вставлять данные из буфера. Параметры Множество вариантов параметров, которые могут быть установлены приведены ниже:: Наименование Абривеатура Тип Описание autoindent as Bool FALSEautoindent during input? autowrite aw Bool FALSEwrite file for :n command? charattr ca Bool FALSE display bold & underline chars? columns co Number 80 width of screen, in characters directory dir String /usr/tmpwhere tmp files are kept errorbells eb Bool TRUEring bell on error? exrefresh er Bool TRUEEX mode calls write() often? ignorecase ic Bool FALSEsearches: upper/lowercase OK? keytime kt Number 1 allow slow receipt of ESC seq? keywordprg kp String /usr/bin/refprogram to run for shift-K lines ln Number 25 height of screen, in lines list li Bool FALSE show tabs as '^I'? magic ma Bool TRUE searches: allow metacharacters? paragraphs pa String PPppPApaparagraphs start with .PP, etc. readonly ro Bool FALSE no file should be written back? report re Number 5 report changes to X lines? scroll sc Number 12 default #lines for ^U and ^D sections se String SEseSHsh sections start with .SE, etc. shell sh String /bin/sh shell program, from environment shiftwidth sw Number 8width of < or > commands sidescroll ss Number 8#chars to scroll sideways by sync sy Bool FALSE call sync() after each change? tabstop ts Number 8 width of a tab character term te String "?" terminal type, from environment vbell vb Bool TRUE use visible bell if possible? warn wa Bool TRUE warn if file not saved for :!cmd wrapmargin wm Number 0Insert newline after which col? wrapscan ws Bool TRUE searches: wrap at EOF? autoindent При режиме ввода, параметр автоотступ или автосмещение, заставит каждую следующую строку начинаться с того же самого количества пустых позиций, отступа как и строка выше. Без автоотступа добавочные строки первоначально пусты. autowrite Когда Вы редактируете один файл и решаете переключиться на другой - через команду:tag или команду :next, то Ваш текущий файл был изменен, то elvis будет печатать сообщение об ошибке и отказываться переключиться. Однако, если установить параметр autowrite (автозапись) в on, то elvis будет записывать текущую версию измененного файла, успешно переключившись на новый файл. charattr Большнство программ для форматирования текста, позволяют определять каким образом его отобразить. Текст может быть подчеркнутыми, выделенным или иметь полужирное начертание шрифта, включая специальные последовательности \fU, \fI, и \fB в тексте. Специальная последовательность \fR отмечает конец подчеркнутого или жирного текста. Elvis как правило рассматривает специальные последовательности точно так же как и любой другой текст. Однако, если будет установлен параметр charattr, то elvis будет интерпретировать эти специальные последовательности правильно,отображая подчеркнутый или полужирный текст на экране. (Конечно, это будет работать, только, если Ваш терминал может отображать подчеркнутое и полужирное начертание шрифта, а также если TERMCAP на входе "говорит", как сделать это). columns Этот параметр 'только для чтения'. Хотя и нет возможности изменить значение параметра, elvis позволяет напечатать его, показав тем самым ширину экрана. directory Elvis использует временные файлы, чтобы сохранить измененный текст. Параметр directory позволяет Вам управлять местом расположения директории временных файлов. В идеале, Вы должны сохранить их в быстрой энергонезависимой памяти, такой как жесткий диск. Этот параметр может быть установлен только в ".exrc" файле. errorbells Этот параметр в elvis оповещает звуковым сигналом о возникновении ошибки в терминале. Однако, если установлен noerrorbells режим, терминал не будет оповещен звуковым сигналом о возникновении ошибки. exrefresh В EX режиме elvis печатает множество строк на экране. Вы можете заставить elvis отображать их построчно на экране, отделяя друг от друга или же печатая строки все сразу. Параметр exrefresh обычно включен ( on ), таким образом каждая строка печатается отдельно друг от друга. По желанию, Вы можете отключить параметр ( off ) (:se noer), если 'написать' системный вызов является дорогостоящим удовольствием на Вашей машине, или если Вы используете оконную окружающую среду. (Оконная окружающая среда обрабатывает текст намного быстрее, когда Вы печатаете много строк сразу.) Этот параметр не имеет эффекта в vi режиме. ignorecase Обычно, когда elvis ищет текст, он рассматривает заглавные буквы, как являющиеся различным для строчных букв. Для того, чтобы игнорировался регистр клавиатуры ignorecase параметр установлен в on, при этом заглавные и строчные буквы рассматривают как равные. keytime Клавиши "курсоры" большинства терминалов посылают последовательность мультимедийного характера. Это в свою очередь позволяет измерить количество времени при передаче каких-либо последовательностей. Параметр keytime позволяет Вам управлять максимальным количеством времени. Это время отклика при нажатии на клавишу при передаче определенной последоательности. По умолчанию значение keytime равно 2. В UNIX, фактическое позволенное количество времени изменится не на много и оно всегда будет между 1 и 2 секундами. Если Вы установите keytime в 1, то фактическое позволенное количество времени будет между 0 и 1 секундой. Примечание: этот параметр - обобщенный вариант параметра перерывания реального vi. keywordprg У Elvis есть специальная поисковая особенность ключевого слова. Вы переводите курсор на слово, и нажимаете сочетание клавиш shift-K, при этом elvis использует другую программу, чтобы искать необходимое слово и отобразать затем искомую информацию. Этот параметр "говорит" о том, какая программа запущена. Показывает полное имя пути до программы. По умолчанию значение этого параметра нахождится в фале /usr/bin/ref, который является программой, ищущей определение функции в C. Производится поиск названия функции в файле признаков исходного кода, названном 'refs' и созданном при помощи ctags для простоты доступа. В качестве альтернативной замены, Вы можете воспользоаться другими программами, такими как English dictionary (Английский словарь) или онлайн руководством. elvis управляет программой, используя ключевое слово как свой единственный аргумент. Программа должна отобразить информацию stdout. Выходной статус программы должен быть равен 0, если Вы не хотите, чтобы elvis напечатал '<< false >>". lines Параметр 'только для чтения' отображает количество строк на экране. list Как правило, (в 'nolist" режиме) elvis отображает больше информации, согласно свободного места на экране и таким образом, как если бы Вы просматривали файл и при этом использовали команду more. Тем не менее, иногда, может быть удобно отображение '^I". В режиме 'list", elvis именно так и делает, при этом также показывая '$" после окончания строки. magic Поисковый механизм в elvis, принимающий строки, содержащие 'регулярные последовательности выражений, в которых определенные символы имеют специальное значение. Параметр magic обычно включен, при этом символы рассматриваются как специальные. Если Вы выключаете параметр magic, то все символы, кроме ^ и $ рассматриваются буквально. ^ и $ сохраняют свои специальные значения независимо от установок magic. paragraphs Команда позволяет перемещать курсор вперёд или назад к следующему абзацу (параграфу). Абзацы могут разделяться пробелами, или точкой ('dot'), командой при форматировании текста. Разные тектовые форматы, используются различные 'dot' команды. Этот параметр позволяет Вам настроить elvisдля работы с различными тектовыми форматами. Предполагается, что Ваш формат использует команды которые начинаются с ". ' у символа впереди линии, и есть одно - или двухсимвольное название команды. Значение параметра paragraphs - строка, в которой каждая пара символов, это единственная возможная форма Вашего форматированного, посредством команды, абзаца текста. readonly Как правило, elvis позволяет производить запись в любой файл, который находится в Вашем распоряжении. Если у Вас недостаточно прав для записи, тогда изменения можно сохранить только в different файл. Если установить для elvis параметр readonly (только для чтения), то буде возможен только просмотр содержимого фала, без возможности редактирования и сохранения изменений. Иногда это удобно, поскольку исключается вероятность случайным образом испортить файл, изменив по ошибке его содержимое. report Команды в elvis могут затрагивать моножество строк. Перед выполнением команд такого типа, когда выполняется операция над определенным количеством строк, elvis выводит соответствующее сообщение, отображая наименование операции и количество затронутых строк. Параметр позволяет задать то количество, которое будет обозначать "множество строк". По умолчание значение равно 5. Таким образом, при выполнении любой команды, затрагивающей количество строк 5 и более, будет выведено информативное сообщение. scroll Нажатие клавиш CTRL-U и CTRL-D позволяет выполнить прокрутку строк назад или вперед на половину или на весь экран, переместившись тем самым к нужной позиции. Параметр scroll позволяет задать значение прокрутки и настроить его по усмотрению. sections Как и несколько других программ, команда служит для перемещения курсора назад и вперед по секции. Секции могут быть разграничены или же отделены посредством текстовых команд, например посредством 'точки'. Этот параметр позволяет Вам сконфигурировать elvis таким образом, чтобы работать с форматируемым текстом используя команду sections тем же самым способом, который применяется при использовании параметра paragraphs и позволяет при форматировании работать с командами paragraphs. shell Командный интерпритатор, является оболочкой в elvis, из которой возможен запуск тех или иных команд (допустимы :! или :shell). По умолчанию командным интерпритатором является /bin/sh, но при желании его можно заменить другим. shiftwidth Команда служит для установления величины отступа влево или вправо на некое заданное число колонок, перемещая таким образом текст. По умолчанию значение парамера shiftwidth равно 8. sidescroll Для больших строк, elvis допускает прокрутку. ( Этим elvis отличается от реального vi, который прокурчивает единственную длинную строку на несколько рядов экрана). Параметр sidescroll позволяет задать значение прокрутки, т.е. указать на сколько нужно переместиться. sync Если, при сбое системы вовремя отредактировать сессии, то большая часть Вашей работы может быть восстановлена из временного файла, который использовался elvis, чтобы сохранить изменения. Однако, иногда MINIX не будет копировать изменения на жесткий диск, в таком случае восстановление не может быть возможным. [Никакой] синхронизирующий [no]sync выбор не позволяет Вам управлять этим. В nosync методе (который установлен по умолчанию), elvis позволяет контролировать за операционной системой и следить когда данные записаны на диск. Это намного быстрее и удобнее. При синхронизирующем sync способе, elvis производит обработку операций, происходящих на диске сразу же, как только Вы производите изменение. Это более безопасно, но в тоже время гораздо медленнее. tabstop Символ табуляции обычно составляет 8 символов, но это значение можно изменить, применив данный параметр. term Параметр 'read only' (только для чтения) отображает имя termcap входящих в elvis и используемых для вашего терминала. vbell Если Ваш termcap включает описание возможности прозванимать в терминале, то этот параметр обеспечит вывод с описанием, разрешенная ли версия или нет. Обычно это вкючено. Если Ваш termcap не будет включать возможность исполдьзования звонка, то vbell параметр будет выключен и Вы не можете включить его. warn При работе, Elvis будет выдавать предупреждения о необходимости сохраненить изменения в файле, котором были произведены какие-либо операции. Параметр 'nowarn" отключает вывод предупреждений. wrapmargin Обычно, (с wrapmargin=0) elvis позволит Вам печатать чрезвычайно длинные строки, если Вы желаете. Однако, с набором wrapmargin к чему - то другому, при 0 (wrapmargin=65), elvis автоматически заставит длинные строки, достигшие границы экрана, быть 'завернутыми" на разрыве слова для строк больших, чем указано в параметре rapmargin. wrapscan Обычно, когды Вы производите поиск чего-либо, elvis найдёт это, независимо от того, где это находится в файле .elvis. Поиск начинается от положении курсора и ниже. Если elvis дает EOF, не находя, что Вы ищете, то программа возвращается к началу позиции, чтобы продолжить искать от линии 1. Если Вы выключите параметр wrapscan(:se nows), то, когда elvis совпадет с EOF при выполнении операции, поиск будет преостановлен и появится соответствующее сообщение. Cflags Elvis использует много символов препроцессора, чтобы управлять компиляцией. Большинство этих флагов позволяет отключать определённые наборы особенностей. Пользователи MINIX возможно захотят использовать все разрешенные особенности, но для этого они должны будут отключить один или два набора признаков, поскольку иначе, elvis будет слишком "большим" для того, чтобы скомпилироваться и запуститься. Эти значения могут быть определены через флаги, которые передаются компилятору. Лучший способ сделать это, должным образом отредактировать Makefile, добавив в сроке флаг 'CFLAGS ='. После этих действий, Вы должны будете перекомпилировать elvis набрав: make clean make DM_SYSV Этот флаг заставляет elvis использовать System-V ioctl () вызывающую управление Вашим терминалом; обычно это используется в v7/BSD/MINIX ioctl () вызовах. DDATE Формат DATE (даты) должен быть определен в строке как постоянная, она задаётся во время компиляции программы elvis. О дате сообщает команда ':version'. Вы можете также оставить DATE неопределенной, к таком случае в ':version ' не будет сообщаться дата компиляции. DCRUNCH Этот флаг позволяет использовать несколько наиболее часто используемых макросов, которые могут быть заменены эквивалентными функциями. Это позволяет сэкономить приблизительно 4 КБ места в '.text' сегмент. DDEBUG Этот параметр добавляет много внутренних проверок на непротиворечивость, ':debug' и ':validate' команды. Это увеличивает размер 'текста' примерно на 5 КБ. DNO_CHARATTR Этот параметр 'charattr' обычно выключен. Это уменьшает размер '.text' примерно до 850 байт. DNO_RECYCLE Обычно, elvis пересматривает (очищает) место во временном файле, содержащее полностью устаревший текст. Параметр DNO_RECYCLE отключает эту возможность, уменьшая '.text' сегмент примерно до 1КБ , но при этом разрешая разростаться в размерах временным файлам. Если у Вас имеется менее чем два мегабайта свободного места на Вашем жестком диске, то даже не рассматривайте использование этого параметра. DNO_SENTENCE Параметр не учитывает '(' и ')' визуальные команды, и удаляет код, позволяющий использовать '[[', ']]', "{}", и '}', '[[', ']]', '{', и '}', команды распознающие nroff макроопределение. Команды с '[[' и ']]' будут перемещены к началу предыдущей/следующей части исходного кода C функции, таким образом '{' и '}' сместятся к предыдущей/следующей пустой строке. Это позволяет сэкономить 650 байт '.text' сегмента. DNO_CHARSEARCH Не учитывает визуальные команды, содержащие в текущей строке следующие символы: 'f', 't', 'F', 'T', ';', и ','. Это позволяет сэкономить 900 байт. DNO_EXTENSIONS Не учитываются команды ':mkexrc', 'K' и '#', а также визуальные команды. Прочие дополнения, являются родными для elvis или слишком незначительными по размеру, чтобы стоило их удалять. Это сохраняет приблизительно 500 байт. DNO_MAGIC Этот параметр отключает 'magic' опцию, так что большинство метасимволов в регулярном выражении не распознается. Это сохраняет около 3Кб от фрагмента '.text'. Termcap Elvis может использовать стандарт termcap, а также имеет ряд дополнительных возможностей, задаваемых пользователем. Возможности Описание :PU=: последовательность полученная клавишей <PgUp> :PD=: последовательность полученная клавишей <PgDn> :HM=: последовательность полученная клавишей <Home> :EN=: последовательность полученная клавишей <End> :VB=: последовательность, посылаемая для начала полужирной печати :Vb=: последовательность, посылаемая для окончания полужирной печати Автор Elvis написал Steve Kirkendall. По вопросам связанным с elvis писать на: kirkenda@cs.pdx.edu