Far. Плагины
Primus inter pares
(Первый среди равных)
В этой записке мы будем говорить о программах (удивил?). Если быть точным, то речь пойдет об одной программе, которая называется Far.
Far - это «File and Archive Manager», что переводится как «Я
справлюсь с вашими файлами и архивами лучше всех». В начале чуточку
истории. Автором этой программы является Евгений Рошал, тот самый,
который написал архиватор Rar. Но в отличие от Rar, Far не получил
полноценного признания на Западе, а в то, что нашему программисту
способны заплатить денежку наши же программисты не верит никто.
Особенно наши же программисты
Чтобы не заниматься самообманом,
для ex-USSR Far был бесплатен. В результате Женя делал программу
почти за спасибо до тех пор, пока не надоело, после чего передал
исходники группе Far Team, собранной из самых лучших и самых активных
писателей плагинов. Теперь именно они внедряют новые фичи, исправляют
старые баги, а Женя выполняет роль э… продюсера?
Да, кстати, о плагинах. Основная прелесть Far’а в том, что он в некоторой степени расширяем за счет плагинов. Плагины пишутся на языках C, C++, Delphi, Virtual Pascal, и прочая, прочая… Сейчас число плагинов огромно, и многое из того, что вам нужно, уже реализовано.
В принципе плагины берутся на домашних страничках их авторов. Но есть секрет полишинеля - все плагины можно найти в одном месте - Far PlugRinG. Все очень удобно разложено по категориям, есть поиск и возможность узнать, какие плагины появились за последние месяц-другой. Общее их количество так велико (>350 по моим прикидкам), что я решил описать те из них, которые могут оказаться полезными не только мне, но и кому-либо еще.
Итак, лично я устанавливаю помимо стандартных плагинов также:
ASCII Table - таблица символов. Нет лучше способа узнать код символа или, наоборот, выяснить, какой символ соответствует данному коду.
AutoCompletion - плагин для редактора, автоматически завершаюший слова в процессе набора. Каюсь, автоматический режим, включенный по умолчанию, я отключил сразу же - мне неудобно. Однако оставил завершение по нажатию специально обученной клавиши. Для этого была выделена комбинация Ctrl-Space. Работает плагин очень просто - сканирует весь текст, ищет слова, которые начинаются с тех же букв, что и набираемое слово и предлагает их в виде меню. Если такой вариант один, то ничего не предлагает - молча вставляет. Фантастически ускоряет набор текстов. Вот и сейчас - вместо того, чтобы набрать слово «плагин», я набираю только «пл» и жму «Ctrl-Space», а умное животное превращает его в «плагин».
Branch - строит список из всех файлов текущего каталога и его подкаталогов. Фактически мы видим все файлы из подкаталогов на одной панельке, как если бы они лежали в одном каталоге. Это может пригодиться для поиска, удаления или копирования групп файлов расположенных в разных подкаталогах. Также это может понадобиться для очистки дерева каталогов без удаления самих каталогов.
Calculator - калькулятор.
CopyVFD - копирование файлов на дискету с проверкой записи. Иногда приходится что-либо переносить на дискете и хочется, чтобы это самое «что-либо» до места назначения добралось в неизмененном варианте.
Colorer - пожалуй, самый известный плагин, выделяет в редакторе ключевые слова того языка программирования, которому соответствует расширение редактируемого файла. Большому числу языков Colorer уже научен, и скорее всего его не придется настраивать. Но если вы используете что-то экзотическое, что ж, регэкспы вам в руки…

тэг table и скобки подсвечиваются Colorer’ом, окошко со свойствами - дело рук HTMLEditor’а
HTML Editor - полезная вещь, когда HTML-странички набираются в Far’е. Позволяет очень удобно отредактировать свойства текущего тэга или, скажем, вставить коды символов. Больше вам не придется запоминать, что © - это ©
Date-n-Time
- плагин, который позволяет вставлять в редакторе
текущую дату и время в нужном вам формате. Я когда в программах делаю
patch’и, обязательно проставляю дату - помогает потом разобраться, откуда
взялись новые баги
Far Navigator (ProxyFTP) - замена стандартному плагину для работы с FTP. Умеет работать через proxy и превращает Far во вполне приличного FTP-клиента, которого вполне хватит для того, чтобы залить странички вашего сайта на сервер.
Find All - позволяет найти сразу все вхождения образца поиска. Ищете вы, к примеру, этим плагином в тексте программы фразу «format c:» и получаете все найденные строки, содержащие ее, в виде меню. Выбираете нужную и оказываетесь в соответствующем месте программы. Просто удобно.
Macro View - в Far встроена возможность назначить клавишам макропоследовательности. Причем происходит это не очень очевидно - вы жмете «Ctrl-.», затем нажимаете кнопки, задающие макропоследовательность, опять «Ctrl-.» и после этого указываете на какую именно клавишу все это нужно «повесить». В общем, все проделывается вслепую. Да к тому же редактора, увы, не встроено - предлагается править ручками в реестре. Данный же плагин превращает эту процедуру во что-то осмысленное, позволяя задавать макропоследовательность не нажатием клавиш, а указанием их названий в отдельном окне. То есть пишем что-то вроде «CtrlG e x p l o r e r Space . Enter» и вешаем на «Ctrl-,». Теперь при нажатии «Ctrl-,» у нас вызывается Explorer в текущем каталоге. Удобно! А еще можно … Впрочем, нет, о макросах как-нибудь позже, сейчас по-быстрому завершу описание плагинов.
Search and Replace - поиск и замена с использованием регулярных выражений. Если ты на вы… тьфу… если вы на ты… если ты на ты… В общем, если вы на короткой ноге с UNIX’ом, то это плагин - для вас. Причем поиск и замену можно учинить не только в пределах одного файла, но и в пределах каталога. Была, скажем, у меня public переменная «cnt12_1», которой я решил дать длинное мнемоническое имя «CounterForCrazyDummies», а поскольку она public, то используется не в одном файле. При обычном раскладе пришлось бы мне с полчаса шерстить все исходники, на предмет поиска-замены. А с этим плагином - выделяю все файлы, которые хочу обработать и опаньки! Хочу только предупредить - если вы не гуру в регулярных выражениях, то не отключайте режим подтверждения каждой замены, ибо рискуете получить немного не те результаты, которые ожидали. Написать кривой регэксп - дело нехитрое.
True Template - весомейший довесок к редактору. Позволяет автоматически форматировать набираемую программу. К примеру, если вы пишете на C, то после «{» вам больше не придется делать отступы самостоятельно - за вас это сделает плагин. Или еще… Наберите в редакторе «for» и нажмите пробел. В результате вы получите:
for (;;){
_
}
Причем все это настраивается очень и очень легко. Описанный трюк с «for» в конфигурационном файле выглядит примерно так:
<Language "*.[c,h]pp,*.[c,h]" ignoreCase=0 Desc="C/C++ sources">
<Expand "f|or" To="for (\p;;){\n}">
Резюме
Поставив все это, понимаешь, насколько удобная это вещь - Far. И пусть злобствуют фанаты DOS Navigator’а и WC, пусть Spectator пишет, что «Я не юзаю FAR, а пользуюсь стандартным эксплорером», Far Manager - это наш выбор! В общем все вперед, стройными рядами и колоннами выкачивать Far. Не забудьте про плагины.
И еще. Вопросы, касающиеся Far’а и его плагинов всегда можно обсудить в специальном листе рассылки. Для вступления в него напишите письмо на plugring-subscribe@yahoogroups.com. Для отправки сообщений в лист используйте адрес plugring@yahoogroups.com.