Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:joe [2010/07/30 21:24] |
wiki:joe [2021/01/06 01:36] (текущий) заменён тег Редакторы_текста на Текстовый_редактор |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ======Текстовый редактор joe ====== | + | ======Редактор joe ====== |
+ | <style right> | ||
//Автор: Алексей Федорчук | //Автор: Алексей Федорчук | ||
2001-2002 гг // | 2001-2002 гг // | ||
+ | </style> | ||
+ | |||
+ | {{:wiki:joe.png?350 }} | ||
+ | |||
Эта статья была написана достаточно давно, по данным для joe версий 2.8.X-2.9.X. До недавнего времени ее нельзя было считать устаревшей, так как проект joe практически не развивался. Однако последнее время в нем наметилась определенная активность, ознаменовавшаяся выходом версий серии 3.X. Которые привнесли, кроме нескольких мелких усовершенствований, два кардинальных новшества - подсветку синтаксиса и возможность работы с кодировкой UTF-8. В результате чего исходно хороший редактор стал еще лучше... | Эта статья была написана достаточно давно, по данным для joe версий 2.8.X-2.9.X. До недавнего времени ее нельзя было считать устаревшей, так как проект joe практически не развивался. Однако последнее время в нем наметилась определенная активность, ознаменовавшаяся выходом версий серии 3.X. Которые привнесли, кроме нескольких мелких усовершенствований, два кардинальных новшества - подсветку синтаксиса и возможность работы с кодировкой UTF-8. В результате чего исходно хороший редактор стал еще лучше... | ||
**Текстовый редактор joe** - типичный представитель консольных редакторов командного стиля, то есть ориентированных не на действие через меню, а на управление с помощью прямых директив. Название его можно перевести примерно как "редактор дядюшки Джо". Он создан Джозефом Алленом (Joseph H. Allen) при участии Ларри Форда (Larry Foard) и Гари Грея (Gary Gray). Это - открытая и бесплатная программа, доступная в исходниках на http://joe.sourceforge.net. Она реализована для всех, насколько я знаю, Unix- и Unix-подобных систем. А некоторые конкретные врсии были собраны для Windows всякого рода и даже для DOS. | **Текстовый редактор joe** - типичный представитель консольных редакторов командного стиля, то есть ориентированных не на действие через меню, а на управление с помощью прямых директив. Название его можно перевести примерно как "редактор дядюшки Джо". Он создан Джозефом Алленом (Joseph H. Allen) при участии Ларри Форда (Larry Foard) и Гари Грея (Gary Gray). Это - открытая и бесплатная программа, доступная в исходниках на http://joe.sourceforge.net. Она реализована для всех, насколько я знаю, Unix- и Unix-подобных систем. А некоторые конкретные врсии были собраны для Windows всякого рода и даже для DOS. | ||
Строка 34: | Строка 39: | ||
Таковы возможности справочной системы joe по умолчанию. Как будет показано ниже, пользователь может не только изменять имеющиеся секции, но и создавать собственные, в любом количестве и для любых целей. | Таковы возможности справочной системы joe по умолчанию. Как будет показано ниже, пользователь может не только изменять имеющиеся секции, но и создавать собственные, в любом количестве и для любых целей. | ||
Если мне удалось убедить читателя, что joe - вещь стоящая, имеет смысл подробнее ознакомиться с его характерными особенностями. | Если мне удалось убедить читателя, что joe - вещь стоящая, имеет смысл подробнее ознакомиться с его характерными особенностями. | ||
- | |||
=====Характерные особенности ===== | =====Характерные особенности ===== | ||
Для эффективного использования joe следует четко уяснить, что это - командный редактор в чистом виде. То есть все действия по редактированию текста осуществляются соответствующими встроенными командами, к которым привязаны комбинации клавиш. В сущности, как будет показано ниже, это - макросы на собственном языке **joe**. Из чего следует, что, с одной стороны, система команд может быть сколь угодно наращена, с другой - что клавишные комбинации для них могут быть переопределены произвольным образом. | Для эффективного использования joe следует четко уяснить, что это - командный редактор в чистом виде. То есть все действия по редактированию текста осуществляются соответствующими встроенными командами, к которым привязаны комбинации клавиш. В сущности, как будет показано ниже, это - макросы на собственном языке **joe**. Из чего следует, что, с одной стороны, система команд может быть сколь угодно наращена, с другой - что клавишные комбинации для них могут быть переопределены произвольным образом. | ||
Строка 40: | Строка 44: | ||
Полный список встроенных команд и привязанных к ним клавишных комбинаций дан в заключительном разделе этой статьи. | Полный список встроенных команд и привязанных к ним клавишных комбинаций дан в заключительном разделе этой статьи. | ||
- | Здесь же я приведу только основные примеры. | + | Здесь же я приведу только основные примеры. Комбинация |
- | **Комбинация Control+B (от backward) перемещает курсор на один знак влево, | + | * **Control+B** (от backward) перемещает курсор на один знак влево, |
- | Control+F (от forward) - на один знак вправо, | + | * **Control+F** (от forward) - на один знак вправо, |
- | Control+Z - переход к предыдущему слову, | + | * **Control+Z** - переход к предыдущему слову, |
- | Control+X - к последующему слову, и так далее. ** | + | * **Control+X** - к последующему слову, и так далее. |
В некоторых случаях в качестве управляющей клавиши используется клавиша Meta (напомню, что ее эквивалент - нажатие и отпускание клавиши Escape): если в комбинации | В некоторых случаях в качестве управляющей клавиши используется клавиша Meta (напомню, что ее эквивалент - нажатие и отпускание клавиши Escape): если в комбинации | ||
- | **Meta+W - курсор переместится на строку вверх, | + | * **Meta+W** - курсор переместится на строку вверх, |
- | Meta+Z - на строку вниз.** | + | * **Meta+Z** - на строку вниз. |
Кроме того, Meta служит для вызова проверки правописания для слова (Meta+N) и всего файла (Meta+L). Нажатие клавиши Meta два раза подряд приводит к установке закладки (bookmark), которая маркируется произвольной цифрой, а Meta+# (где # - эта самая цифра) вызывает переход к установленной закладке. Правда, очевидно, что закладок не может быть больше 10; и к тому же по завершении сеанса они не сохраняются. | Кроме того, Meta служит для вызова проверки правописания для слова (Meta+N) и всего файла (Meta+L). Нажатие клавиши Meta два раза подряд приводит к установке закладки (bookmark), которая маркируется произвольной цифрой, а Meta+# (где # - эта самая цифра) вызывает переход к установленной закладке. Правда, очевидно, что закладок не может быть больше 10; и к тому же по завершении сеанса они не сохраняются. | ||
- | Все клавишные комбинации в joe не чувствительны к регистру, причем не только для буквенных, но и символьных клавиш. Так, для отмены последней операции (как уже говорилось, многоуровневой) зарезервирована комбинация | + | Все клавишные комбинации в joe не чувствительны к регистру, причем не только для буквенных, но и символьных клавиш. Так, для отмены последней операции (как уже говорилось, многоуровневой) зарезервирована комбинация **Control+_** (знак подчеркивания), а для возврата отмененного действия — **Control+^** oднако в первом случае работает также комбинация **Control+-** (дефис или минус), во втором - **Control+6**. |
- | + | Кроме того, все двухклавишные комбинации не чувствительны и к раскладке клавиатуры: сочетание клавиш, например, **Control+T** будет вызывать систему настройки joe и при кириллической раскладке. Интересно, что для пролистывания страниц помощи вперед и назад при кириллической раскладке следует нажимать Escape и точку (или, соответственно, запятую) также в ее положении на русифицированной клавиатуре (то есть в нижнем правом углу для Windows-клавиатур и на верхнем регистре цифр 5 и 7, если мне не изменяет память, - для клавиатур с DOS-маркировкой). | |
- | **Control+_ (знак подчеркивания), а для возврата отмененного действия — Control+^;** | + | Для более сложных или редких действий используются трехклавишные комбинации. Это почти исключительно одновременно нажатые **Control+K**, после чего нажимается литерная клавиша. Так, операции с блоками осуществляются следующим образом: |
- | однако в первом случае работает также комбинация Control+- (дефис или минус), во втором - Control+6. | + | |
- | Кроме того, все двухклавишные комбинации не чувствительны и к раскладке клавиатуры: сочетание клавиш, например, Control+T будет вызывать систему настройки joe и при кириллической раскладке. Интересно, что для пролистывания страниц помощи вперед и назад при кириллической раскладке следует нажимать Escape и точку (или, соответственно, запятую) также в ее положении на русифицированной клавиатуре (то есть в нижнем правом углу для Windows-клавиатур и на верхнем регистре цифр 5 и 7, если мне не изменяет память, - для клавиатур с DOS-маркировкой). | + | |
- | Для более сложных или редких действий используются трехклавишные комбинации. Это почти исключительно одновременно нажатые Control+K, после чего нажимается литерная клавиша. Так, операции с блоками осуществляются следующим образом: | + | |
- | + | ||
- | **Control+K - B отмечает начало выделяемого блока, | + | |
- | + | ||
- | Control+K - K - его конец, | + | |
- | + | ||
- | Control+K - C - копирует, | + | |
- | Control+K - M - перемещает выделенный блок в позицию курсора, ** | + | * **Control+K** - B отмечает начало выделяемого блока, |
+ | * **Control+K** - K - его конец, | ||
+ | * **Control+K** - C - копирует, | ||
+ | * **Control+K** - M - перемещает выделенный блок в позицию курсора | ||
- | и так далее. Трехклавишные комбинации также не чувствительны к регистру. И работают также и при кириллической раскладке клавиатуры. В этом случае только необходимо нажимать вторую литерную клавишу вместе с той же клавишей Control: то есть запись текущего файла при включении кириллической раскладки потребует комбинации Control+K - Control+D, вызов нового файла - Control+K - Control+E, и так далее. | + | и так далее. Трехклавишные комбинации также не чувствительны к регистру. И работают также и при кириллической раскладке клавиатуры. В этом случае только необходимо нажимать вторую литерную клавишу вместе с той же клавишей Control: то есть запись текущего файла при включении кириллической раскладки потребует комбинации **Control+K - Control+D**, вызов нового файла - **Control+K - Control+E**, и так далее. |
В joe нет отдельной функции для переименования файла. Но при любой записи текущего документа следует запрос на подтверждение имени файла, изменить которое при этом никто не запрещает. Следует только помнить, что дальнейшая работа происходит с исходным, а не | В joe нет отдельной функции для переименования файла. Но при любой записи текущего документа следует запрос на подтверждение имени файла, изменить которое при этом никто не запрещает. Следует только помнить, что дальнейшая работа происходит с исходным, а не | ||
переименованным файлом. | переименованным файлом. | ||
Кроме того, в joe доступны еще некоторые действия с файлами. Так, комбинация | Кроме того, в joe доступны еще некоторые действия с файлами. Так, комбинация | ||
- | **Control+K - R вставляет текст из существующего файла в позицию курсора, | + | * **Control+K - R** вставляет текст из существующего файла в позицию курсора, |
- | Control+K - W - записывает выделенный блок в виде нового файла (разумеется, запросив предварительно его имя). | + | * **Control+K - W** - записывает выделенный блок в виде нового файла (разумеется, запросив предварительно его имя). |
- | С помощью комбинации Control+K - E можно открыть для редактирования другой существующий файл. ** | + | * **Control+K - E** можно открыть для редактирования другой существующий файл. |
При этом следует предложение ввести путь и имя, причем и для того, и для другого работает режим дополнения клавишей табуляции, как в командных средах bash или tcsh. | При этом следует предложение ввести путь и имя, причем и для того, и для другого работает режим дополнения клавишей табуляции, как в командных средах bash или tcsh. | ||
Между одновременно открытыми файлами возможен обмен данными: или с помощью команд joe (то есть выделением блока в первом файле и его копированием или перемещением во второй), или с помощью мыши - стандартным выделением и вставкой щелчком средней ее клавиши. Второй способ, естественно, может применяться и для обмена между разными копиями joe, запущенными на отдельных виртуальных консолях. | Между одновременно открытыми файлами возможен обмен данными: или с помощью команд joe (то есть выделением блока в первом файле и его копированием или перемещением во второй), или с помощью мыши - стандартным выделением и вставкой щелчком средней ее клавиши. Второй способ, естественно, может применяться и для обмена между разными копиями joe, запущенными на отдельных виртуальных консолях. | ||
- | Одновременно открытые файлы могут быть представлены как в полноэкранном виде, так и каждый в своем окне. Для переключения между однооконным и многооконным режимами служит комбинация **Control+K - I**. Размер каждого из выведенных окон может быть увеличен или уменьшен **(Control+K - G и Control+K - T, соответственно), правда, только с шагом в одну экранную строку. Переключение между открытыми документами, вне зависимости от режима, осуществляется комбинациями Control+K - N (вперед или вниз) и Control+K - P (назад или вверх).** | + | Одновременно открытые файлы могут быть представлены как в полноэкранном виде, так и каждый в своем окне. Для переключения между однооконным и многооконным режимами служит комбинация **Control+K - I**. Размер каждого из выведенных окон может быть увеличен или уменьшен **(Control+K - G** и **Control+K - T**, соответственно), правда, только с шагом в одну экранную строку. Переключение между открытыми документами, вне зависимости от режима, осуществляется комбинациями **Control+K - N** (вперед или вниз) и **Control+K - P** (назад или вверх). |
К слову сказать, в joe возможен и независимый просмотр разных частей документа в отдельных окнах, для чего предназначена функция расщепления окна (Control+K - O). Ну и, конечно же, фрагменты из одной части файла могут быть легко перенесены в другую. | К слову сказать, в joe возможен и независимый просмотр разных частей документа в отдельных окнах, для чего предназначена функция расщепления окна (Control+K - O). Ну и, конечно же, фрагменты из одной части файла могут быть легко перенесены в другую. | ||
- | ====Универсальной комбинацией для окончания любой операции в joe является | + | Универсальной комбинацией для окончания любой операции в joe является |
- | Control+C. С ее помощью закрывается окно с текущим документом; если он был единственным в данном сеансе, одновременно происходит и выход из редактора. В обоих случаях следует запрос на сохранение изменений, буде таковые имелись. Отказаться от выхода или закрытия файла можно повторным нажатием той же комбинации Control+C. Она же используется для прекращения любой длящейся во времени (спеллинг, поиск) или требующей подтверждения операции. | + | **Control+C**. С ее помощью закрывается окно с текущим документом; если он был единственным в данном сеансе, одновременно происходит и выход из редактора. В обоих случаях следует запрос на сохранение изменений, буде таковые имелись. Отказаться от выхода или закрытия файла можно повторным нажатием той же комбинации Control+C. Она же используется для прекращения любой длящейся во времени (спеллинг, поиск) или требующей подтверждения операции. |
Кроме этого, непосредственно из joe, без выхода, можно обращаться к командам оболочки (shell), причем - различными способами. Так, комбинация **Control+K - Z** обеспечивает временный выход в оболочку, где можно вводить любые ее команды. А по завершении операций - вернуться в среду joe можно комбинацией fg. То есть в данном случае мы имеем дело с обычной приостановкой текущей задачи. | Кроме этого, непосредственно из joe, без выхода, можно обращаться к командам оболочки (shell), причем - различными способами. Так, комбинация **Control+K - Z** обеспечивает временный выход в оболочку, где можно вводить любые ее команды. А по завершении операций - вернуться в среду joe можно комбинацией fg. То есть в данном случае мы имеем дело с обычной приостановкой текущей задачи. | ||
Кроме этого, есть и более интересная возможность: открытие внутри joe, посредством комбинации **Control+K - '** (апостроф), самостоятельного окна с собственной командной оболочкой. Здесь можно выполнять любые команды с выводом их результатов на экран. После чего стандартной командой exit осуществляется выход из среды, а все результаты сохраняются обычным для joe образом в виде текстового файла: возможность неоценимая при создании и редактировании всякого рода скриптов. | Кроме этого, есть и более интересная возможность: открытие внутри joe, посредством комбинации **Control+K - '** (апостроф), самостоятельного окна с собственной командной оболочкой. Здесь можно выполнять любые команды с выводом их результатов на экран. После чего стандартной командой exit осуществляется выход из среды, а все результаты сохраняются обычным для joe образом в виде текстового файла: возможность неоценимая при создании и редактировании всякого рода скриптов. | ||
Строка 97: | Строка 95: | ||
Таковы основные возможности joe для редактирования текстов общего характера. Кроме этого, имеется ряд команд специального назначения, используемых при программировании (поиск ошибок, компилирование и проч.), однако их я за ненадобностью (мне) не изучал. | Таковы основные возможности joe для редактирования текстов общего характера. Кроме этого, имеется ряд команд специального назначения, используемых при программировании (поиск ошибок, компилирование и проч.), однако их я за ненадобностью (мне) не изучал. | ||
Однако и сказанного достаточно для представления возможностей редактора joe. | Однако и сказанного достаточно для представления возможностей редактора joe. | ||
+ | |||
=====Макрокоманды ===== | =====Макрокоманды ===== | ||
Если же штатных команд редактора joe оказывается недостаточно, можно прибегнуть к их самостоятельному конструированию. | Если же штатных команд редактора joe оказывается недостаточно, можно прибегнуть к их самостоятельному конструированию. | ||
Строка 397: | Строка 396: | ||
* Meta+M ввод регулярного выражения; | * Meta+M ввод регулярного выражения; | ||
* Meta+H отправка сообщения (нечто вроде команды write, но на одном и том же терминале). | * Meta+H отправка сообщения (нечто вроде команды write, но на одном и том же терминале). | ||
+ | |||
+ | {{tag>howto Консоль Система Текстовый_редактор}} |