Многие мои коллеги принципиально игнорируют Midnight Commander,
предпочитая работать в командной строке. Мотивируют это целым рядом
причин, начиная с «нортон коммандер устарел еще в 1995 году» и
заканчивая «я юниксоид с 1970 года и без всяких mc прекрасно управляюсь в
консоли». Конечно же, это дело вкуса, и можно (и нужно!) настроить
консоль под себя так, чтобы она летала со скоростью мысли: на помощь
приходят команда alias, сочетание Ctrl+R, описание команды shopt в
builtins(1), пакет bash_completion или его аналоги, ряд мелких хаков,
наподобие такого, или альтернатива в виде zsh, в конце концов.
Однако визуалам типа меня удобнее постоянно иметь перед глазами
списки файлов и папок, а не помнить, какой файл где находится и что
здесь есть еще. Кроме того, пользуясь исключительно командами cd и ls --color , можно легко проглядеть что-нибудь ненужное, типа оставшихся от vim бэкапов в текущем каталоге (если бэкапы нужны, см :help backupdir ) или папок с именем из пробела.
Конечно, сначала mc производит немного гнетущее впечатление, но если
разобраться и привыкнуть, то может оказаться, что даже с конфигурацией
из коробки он очень облегчает жизнь разработчика и системного
администратора. Поделюсь собственными хитростями, используемыми каждый
день. За кадром осталось еще множество интересных фич, типа кастомной
раскраски файлов в панели, смены цветовой схемы на черно-зеленую,
сниппетов в редакторе mcedit, настраиваемых VFS, но поскольку я ими не
пользуюсь, то ничего про них не скажу. Примеры их настроек и
использования можно посмотреть в /etc/mc и в /usr/share/mc.
Сначала полезные мелочи, для многих очевидные.
На данный момент самой полезной фичей для меня является пользовательское меню. Про него я уже писал пару раз (1, 2), сейчас расскажу более подробно.
Я поддерживаю несколько сайтов под mod_perl, и после изменений в коде
startup.pl необходимо перезапускать процесс apache, свой для каждого
сайта. Каждый сайт находится в /home/sites/sitename, а конфиг apache для
этих сайтов — в /usr/local/apache/conf/httpd-sitename.conf.
Когда мне надоело вручную писать
/usr/local/apache/bin/apachectl-sitename restart после каждого
изменения, в ~/.mc/menu добавились строчки:
s Restart apache for sitename
sudo /usr/local/apache/bin/apachectl-sitename restart
Первая строка задаёт быструю клавишу и название пункта меню, а все за
ней следующее — команду, в которой можно использовать ряд
макро-подстановок:
- %f — имя файла под курсором, %x — расширение, %b — имя файла без расширения
- %d — каталог в активной панели, %D — каталог в неактивной панели
- %t — выбранные файлы в активной панели, %T — в неактивной
и т.д.
Потом появилось еще пять подобных пунктов, для каждого сайта. В конце
концов, мне надоело выбирать стрелками нужную команду или искать в
длинном списке, какая буква соответствует соответствует нужному пункту.
Внимательно перечитав справку, появляющуюся при нажатии F1 в меню F2,
добавил еще по строчке к каждому определению пункта меню:
+= d /home/sites/sitename | f httpd-sitename.conf
s Restart apache for sitename
sudo /usr/local/apache/bin/apachectl-sitename restart
Первый символ «=» означает начало условия, при котором пункт меню
становится активным по умолчанию (при вызове меню курсор уже стоит на
этом пункте, так что остаётся только нажать Enter); если перед ним стоит
+, то пункт появляется в меню только при выполнении этого условия.
Следующий символ — тип условия, например:
Условия можно комбинировать и объединять, например:
# если находимся в папке /home/sites/sitename и под курсором — файл .sql, показать этот пункт меню
+= d /home/sites/site_name & f *.sql
S import sql-file to database sitedb
mysql sitedb < %f
Таким образом, приведенный ранее кусок означает «если находимся в
каталоге сайта или стоим на конфигурационном файле apache для него,
показать команду перезапуска сервера и встать на нее курсором».
Остальное — дело фантазии и техники. Достаточно подумать о том, какие
рутинные действия выполняются достаточно часто, и просто
автоматизировать их.
Источник:http://bappoy.pp.ru/2011/09/08/mc.html
|