Воскресенье
12.05.2024, 21:54
| RSS
Главная
Меню сайта

Категории раздела
Madriva [3]
Ubuntu (KUbuntu, EdUbuntu, XUbuntu) [78]
SUSE [1]
Fedora Core [9]
ASPLinux [1]
Debian [16]
Gentoo [3]
Другие [167]

Мини-чат

Наш опрос
Оцените мой сайт
Всего ответов: 45

Статистика

Rambler's Top100Рейтинг@Mail.ru

Главная » 2011 » Ноябрь » 3 » Комфортная работа в Midnight Commander
Комфортная работа в Midnight Commander
10:23

Многие мои коллеги принципиально игнорируют 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.

Сначала полезные мелочи, для многих очевидные.

  • Если до mc по каким-то причинам не доходят коды кнопок Fn, их можно заменить Esc-n. А Alt, иногда перехватываемый панелью меню, успешно заменяется кнопкой Esc
  • Режим просмотра файлов «Full file list» лучше, чем «Short file list». При желании можно добавить туда показ прав на объекты файловой системы, например:
    half type name | size | mtime | mode:3
  • Панели подсказок над и под командной строкой внизу и меню сверху можно отключить в Options — Layout, будет больше пространства для списка файлов. Заодно там можно включить отображение свободного места в текущем разделе — очень полезно для нетбуков с мелкими экранами
  • При навигации по списку файлов сочетание Ctrl+S перекидывает на файл, начинающийся с вводимых символов
  • Alt+Y перекидывает в предыдущую папку. Иногда это бывает полезно при восстановлении после ошибки «The shell is already running the command», за все время существования mc ставшей его визиткой
  • Встроенный редактор ужасен. В ~/.bashrc добавьте строчку export EDITOR=vim, а в пункте меню Options — Configuration снимите галку «Use internal editor». Точно так же можно использовать переменную окружения PAGER=view для просмотра файлов (опция «Use internal view»)
  • Alt+I покажет текущую папку в противоположной панели, а Alt+O — папку под курсором, а если под курсором файл, то родительскую.
  • Начиная с ветки midnight commander 4.7.1, в меню сортировки появилась сортировка по версиям, она работает точно так же, как ls -v, т.е. показывает список 1.2.1, 1.2.2, 1.2.10 именно в этом порядке, а не в алфавитном (1.2.1, 1.2.10, 1.2.2). Сам делал :).
  • Ctrl+X c — просмотр и редактирование прав на файл
  • Ctrl+X d — три варианта сравнения двух каталогов: быстрое (по спискам файлов), по размерам (то же самое, только с учетом размеров), полное (по содержимому файлов)
  • Alt+C — быстрый переход в нужную папку без изменения командной строки. По Esc-Tab показывает список подстановки (в командной строке mc Esc-Tab тоже иногда работает)
  • По Ctrl+\ имеется многоуровневое меню быстрого доступа к папкам, в т.ч. и через FTP и SSH. При желании его можно отредактировать вручную в ~/.mc/hotlist

На данный момент самой полезной фичей для меня является пользовательское меню. Про него я уже писал пару раз (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); если перед ним стоит +, то пункт появляется в меню только при выполнении этого условия. Следующий символ — тип условия, например:

  • f шаблон — имя файла соответствует шаблону (если в начале файла меню не указана опция shell_patterns=0, то под шаблоном имеется в виду шелл-шаблон, в противном случае — регулярное выражение)
  • d шаблон — текущий каталог соответствует шаблону
  • t type — то, что под курсором, имеет тип:
    • n не является директорией
    • r обычный файл
    • d каталог
    • l ссылка
    • c последовательное устройство
    • b блочное устройство
    • f FIFO
    • s сокет
    • x исполняемый файл
    • t отмеченный файл

    Различные типы можно комбинировать, например, t rdl означает файл, каталог или ссылку

  • остальные тесты можно подсмотреть в упомянутой справке

Условия можно комбинировать и объединять, например:

# если находимся в папке /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
Категория: Другие | Просмотров: 674 | Добавил: tol | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта

  • Администрация

    Andry


    Tol


    Copyright MyCorp © 2024
    Хостинг от uCoz