JOE — Joe's own editor (собственный редактор Джо, видимо Джо как и многие юниксоиды любитель рекурсивных акронимов). Он наверняка есть в репозитории вашего дистрибутива, и не смотря на то что о нем почему-то редко можно где-то в русскоязычной сети услышать он всё же продолжает развиваться.
Примечательной особенностью JOE является возможность эмулировать другие редакторы. Вот выдержка из экранной документации aka man
JOE также эмулирует несколько других редакторов. JSTAR - это имитация WordStar со многими расширениями JOE. JPICO - имитация текстового редактора PICO, используемого в почтовой системе PINE, но со многими расширениями и улучшениями. JMACS - это имитация GNU-EMACS. JICE - настроенный на использование функциональной клавиатуры в традиционном PC-стиле редактор, рекомендуемый для использования в комплексе программ бухучета iceB. RJOE - урезанная версия JOE, которая позволяет редактировать только файлы, указанные в командной строке.(pico это именно то что хотел клонировать редактор nano, т.е. перейти с nano на jpico должно быть не трудно)
Не хочется копировать сюда man, который, кстати, полностью переведен на русский язык, поэтому я всего лишь опишу основные возможности и скажу пару слов и своих мыслей по поводу редактора.
Начнем, пожалуй, с основных возможностей:
- Поддержка UTF-8 и возможность смены кодировок с автоопределением выбираемого файла (с cp1251 были проблемы и приходслось иногда выбирать его в меню, но с тех пор файлы с этой кодировкой мне не попадались)
- Подсветка синтаксиса (на данный момент в комплекте уже имеются файлы для подсветки 4gl, ada, asm, awk, c, cobol, conf, csh, css, diff, fortran, haskell, html, java, joerc, jsf_check, jsf, lisp, lua, m4, mail, mason, matlab, ocaml, pascal, perl, php, ps, python, rexx, ruby, sed, sh, skill, sml, spec, sql, tcl, tex, troff, verilog, vhdl, xml, ну и свои создовать никто не запрещает)
- Редактирование нескольких файлов одновременно с возможностью разбивки экрана на регионы аля gnu screen
- Макросы (метакоманды) благодаря чему появляется некоторая расширяемость функций редактирования
- Редактирование файлов размером больше чем оперативная память.
- Копирование/вставка блоков
- Режим для рисования ASCII графики
- Неограниченное Undo/Redo
- Что-то похожее на автокомплит
- Меню настроек, т.е. настройки редактора можно задавать не только с помощью параметров командной строки или файла конфигураций, но и интерактивно. В меню можно изменить не только настройки но и выбрать кодировку или подсветку, перейти в режим hex-редактора и прочее
- Полная настройка горячих клавиш
- Поддержка мыши
- Интересно организованная справка (о ней ниже)
- Переход к строке, пометке
- Возможность компиляции прямо из редактора
- Поиск/замена с использованием регулярных выражений
- Работа на большинстве Unix-подобных систем (в том числе Mac OS X и BeOS), а по слухам его можно собрать для Windows и даже для DOS
При запуске редактора joe с дефолтными конфигами вверху мы видим статусную строку — в ней же справа мы видим надпись Ctrl-K H for help, т.е. для вызова справки надо нажать ^+K и H. Справка до ужаса проста и похожа на то что можно видеть в редакторе nano при его запуске, но в joe она сверху и уже многоэкранная — пролистывать можно с помощь Meta+. и Meta+,. В справке описаны все хоткеи, помощь по поиску/замене, команды и прочее. Скрывается справка тем же сочетанием клавиш что и открывается. Стоит заметить что самая полная справка в joe по-умолчанию, без эмуляции типа jmacs, ибо именно в файле конфигурации и прописана сама справка....
Полный список функций и особенности управление самим редактором можно найти в man'e, а сдесь же я просто скажу о паре достоинств для меня.
Конечно же главное достоинство joe это вовсе не функционал (хотя он весьма и весьма не беден), а кажущаяся простота и относительная легкость освоения. По легкости освоения он, естественно, уступает меню-ориентированным текстовым редакторам, однако быстрота выполнения основных операций по редактированию текста оставит такие редакторы далеко позади, собственно большинство командо-ориентированных редакторов это делают (правда для этого надо определенные навыки работы с ними, но c joe сие достигается достаточно быстро).
Ну и не стоит забывать о настраиваимости. Настраивается всё — каждая настройка может быть изменена не только в конфиге, но и с помощью параметров командной строки, а так же большинство из них может быть изменено уже в запущенном joe с помощью меню. Так же при недостатке уже встроенных комманд по управлению текстом можно создать свои команды и макросы, к примеру, готовые макросы для html есть на оффсайте. Клавишные комбинации можно менять как душе угодно абсолютно все, именно эта особенность и позволина эмулировать разные текстовые редакторы, т.е. запуская jmacs мы запускает тот же joe но указывая в качестве параметра файл с глобальными настройками jmacsrc в котором и описаны все настройки клавиатуры схожие с настройками emacs.
В общем хватит расхваливать, ведь лучше один раз попробывать да прочитать man.
Когда-то попробовал и я, и для меня сей чудный редактор тогда оказался идеальным в соотношении порог вхождения - функциональность - настраиваемость. В консоли использую именно его.
Этот заметка написана именно в joe
PS Изначально хотел написать немного технических аспектов и небольшое руководство по началу использования, но за меня это сделал Алексей Федорчук в далеком 2002 году. Причем сделал это замечательно и его заметка до сих пор остается неплохой вводной (хотя немного и устаревшей). Правда благодаря русскому man'у многим теперь она покажется бесполезной, но именно такая подача информации лично мне ближе чем сухость официального мануала. В итоге вместо вводной по использованию у меня получилась просто ода joe и его реклама =) а рекламы ему действительно не хватает.