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 уже научен, и скорее всего его не придется настраивать. Но если вы используете что-то экзотическое, что ж, регэкспы вам в руки…

html editor
тэг 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.