1/24/2011

Midnight Commander: команды и горячие клавиши

Умывальников начальник и мочалок командир...
Прошли те времена, когда синий цвет на экране ассоциировался не с BSoD, а с Norton Commander. Этот файловый менеджер полюбили многие. Как грибы после дождя, стали появляться клоны. Пользователи Windows получили реинкарнацию проекта в виде FAR Manager. Линуксоиды тоже не спали и вместо надоедливых cp/mv явили миру Midnight Commander.


Программа имеет «интуитивно понятный интерфейс», правда, для эффективного применения mc в боевых условиях понадобится усвоить магические клавиатурные сочетания. Для вышеозначенных целей была скомбинирована шпаргалка в виде PDF-документа. Хочу заметить, шпаргалка никоим образом не отменяет чтения страниц man. Документ распечатывается и крепится на видном месте. Когда потребуется, всегда перед глазами. Сценарий использования абсолютно бесхитростный, но действенный.

Структура
Панели каталогов
После первого запуска mc сам собой возникает вопрос: «Куда коней запрягать?» Чтобы приручить к себе панели, понадобятся следующие комбо-удары:
Tab, Ctrl + i сменить текущую (активную) панель
Insert, Ctrl + t отметить файл либо снять отметку
Alt + g Alt + r Alt + j подсветка верхнего, среднего или нижнего файла из числа отображаемых на панели
Alt + tпереключить режим отображения
Ctrl + \показать «Справочник каталогов»
+ выбрать (отметить) группу файлов по регулярному выражению
\снять отметку с группы файлов
Alt + o если выделен каталог, установить его текущим в неактивной панели. Иначе, установить родительский каталог текущим.
Alt + iтекущий каталог активной панели станет текущим каталогом неактивной панели
Alt + y к предыдущему каталогу из истории перемещения
Alt + uк следующему каталогу из истории перемещения
Alt + H отображает историю перемещения по каталогам
Alt + eпоменять кодировку панели
Alt + . отобразить скрытые файлы
Alt + ,расположить панели вертикально/горизонтально
Ctrl + u поменять панели местами

Разные команды
Итак, худо-бедно жонглировать файлами и каталогами научились. Пора взяться за права и обязанности владельцев, попутно наблюдая за другими фокусами:
Ctrl + lперерисовать экран
Ctrl + x c поменять права (chmod) для отмеченных файлов
Ctrl + x oпоменять владельца (chown) для отмеченных файлов
Ctrl + x l создать жёсткую ссылку
Ctrl + x sсоздать абсолютную символическую ссылку
Ctrl + x v создать относительную символическую ссылку
Ctrl + x iпереводит пассивную панель в режим «Информация»
Ctrl + x q переводит пассивную панель в режим быстрого просмотра
Ctrl + x !меню → «Критерий панелизации»
Ctrl + x h добавить имя каталога в «Справочник каталогов»
Alt + !меню → «Просмотр вывода команды»
Alt + ? окно «Поиск файла»
Alt + cокно «Быстрая смена каталога»
Ctrl + o скрыть/показать панели
Ctrl + Spaceподсчёт размера каталога
Ctrl + r перечитать содержимое каталога
Ctrl + x jпоказать фоновые задания
Ctrl + x d сравнить каталоги
Ctrl + x, Ctrl + dсравнить файлы
Shift + F6 переименовать файл

Быстрый поиск
Здесь могла быть реклама гугла с настоящим контекстом, но Ларри до сих пор не отреагировал на моё деловое предложение.
Если серьёзно, быстрый поиск «на лету» выделяет файлы по первым символам введённого имени.
Ctrl/Alt + sрежим быстрого поиска

Командная строка оболочки
Ниже представлены сочетания, призванные сократить количество телодвижений, связанных с вводом команд в командной строке.
Ctrl/Alt + Enterкопирует подсвеченное имя файла в командную строку
Alt + Tab пытается выполнить операцию Завершение ввода
Ctrl + x t, Ctrl + x Ctrl + tкопирует в командную строку имена помеченных файлов из активной/пассивной панели
Ctrl + x p, Ctrl + x Ctrl + p копирует в командную строку имя текущего каталога из активной/пассивной панели
Ctrl + qвставить символы, которые интерпретируются mc (пример: +)
Alt + p, Alt + n перемещение по истории команд
Alt + hвыводит историю текущей строки ввода (историю команд)
Ctrl + V вставка из буфера обмена

Редактирование строк ввода
Строки ввода (как в командной строке, так и в диалоговых окнах) воспринимают управляющие комбинации, совпадающие с комбинациями bash'а. Для последних я уже сделал шпаргалку, которая, к слову, неплохо разошлась в узких кругах. Поэтому любопытствующие могут легко скачать PDF.

End of post
Самые стойкие читатели наверняка ждут результирующего документа: rmc.pdf (~60 Kb)

Этот маленький opensource-кирпичик расположился на github'е. Если захотите отредактировать, поменять шрифты или нечто подобное — не ждите трудностей, они вам не встретятся. PDF создан из обычного odt-файла, OpenOffice в помощь :-)

UPD: Владимир Бредников — автор “Bappoy's blog”поделился полезными советами и сценариями использования mc. Рекомендую.

40 комментариев:

  1. Спасибо! Вот думал тоже в своем блоге такое написать на этой неделе, но меня опередили))

    ОтветитьУдалить
  2. @Dmurr
    Всегда пожалуйста!

    @keedhost
    Большой брат не дремлет, а идеи, как известно материальны ;-)

    Каких шпаргалок подобного рода вам не хватает?

    ОтветитьУдалить
  3. Для актуализации документа:
    http://www.midnight-commander.org/wiki/ru/doc/filePanels/hotkeys
    http://www.midnight-commander.org/wiki/ru/doc/editor/hotkeys

    ОтветитьУдалить
  4. Хочу малость дополнить, во всех комбинациях с Alt, оную клавишу заменяет одиночное нажатие Esc, особенно это полезно для комбинации автодополнения Alt-TAB, ибо, будучи запущенным из терминала в каком нибудь WM или DE, данная комбинация предложит переключить окна. Тогда-то Esc,TAB и поможет.

    Кроме того, будет полезно для некоторых терминалов, нажатия Esc,1 (комбинацией через запятую я подразумеваю: нажимаем и отпускаем первую клавишу, нажимаем и отпускаем вторую клавишу); Esc,2 и т.д до Esc,0 - эквивалентно нажатию функциональных клавиш F1, F2 ... F10.

    Кроме того, через меню Настройки -> Распознавание клавиш... полезно настроить и сохранить раскладку клавиш для своего терминала.

    ОтветитьУдалить
  5. Спасибо огромное за столь понятный и нужный справочник!

    ОтветитьУдалить
  6. @ip1024
    Гран мерси за ссылки.
    Там ещё больше сочетаний, чем в man странице. Перед общественностью встала проблема, как выделить наиболее важные комбинации, чтобы шпаргалка по-прежнему вмещалась в формат А4 :-) Буду рад советам.

    @h4tr3d
    Внутри PDF есть кратенькая врезка, где говорится об идентичности мета-клавиш Esc и Alt.
    По поводу Esc,№ не знал. Спасибо за дополнения и бдительность :-)

    @Анонимный
    You are welcome!
    Не забывайте писать багрепорты и предлагать другие программы для шпаргализации ;-)

    ОтветитьУдалить
  7. А вот и я. [осторожно открывая комменты] Криков "БАЯН!!" нету? Тухлыми корнеплодами не покидали? А, ну вот :-)

    @Dmurr комментирует...
    Огромное спасибо!!!
    Это Акуловичу, мопед-то не мой :-)

    @keedhost комментирует...
    Спасибо! Вот думал тоже в своем блоге такое написать на этой неделе, но меня опередили))
    Так мы ж не газета Правда - пишите! Больше мануалов, хороших и разных.

    @ip1024 комментирует...
    Для актуализации документа
    Спасибо, добрый человек! Акулович, твой выход :-)

    @h4tr3d комментирует...
    Хочу малость дополнить, во всех комбинациях с Alt, оную клавишу заменяет одиночное нажатие Esc
    О, круто! А я и не знал... Спасибо!

    @Анонимный комментирует...
    Спасибо огромное за столь понятный и нужный справочник!
    Это Акуловичу, он подсуетился. На самом деле, у меня были уже сочетания клавиш в этом посте, но Акулович мастерски переосмыслил.

    @Dr.AKULAvich комментирует...
    Гран мерси за ссылки.
    Ты б добавил что-нибудь оттуда. Ссылки-то знатные!

    Ну вот, ещё один гостевой пост в копилке. Добро пожаловать в Экипаж, Акулович!

    ОтветитьУдалить
  8. @virens
    Криков "БАЯН!!" нету? Тухлыми корнеплодами не покидали?
    Ну дык, фирма веников не вяжет. Ключевой момент — шпаргалка, а команды и комбинации в man'е прочитать можно.

    Ты б добавил что-нибудь оттуда. Ссылки-то знатные!
    Сделал рефакторинг и наложил пару патчей :-)
    Сочетания для редактора mc не трогал, другая тема.

    Ну вот, ещё один гостевой пост в копилке.
    Думается мне, мало кто заметил подмену виренса. Ждал в комментариях стачек: «Верните Мишу!»
    Никто и не спросил, откуда я нарисовался :-)

    ОтветитьУдалить
  9. Вот спасибо-то! Очень полезно. Уже печатаю и вешаю на стену :)

    ОтветитьУдалить
  10. Спасибо, давно хотел шпаргалку

    ОтветитьУдалить
  11. @Dr.AKULAvich комментирует...
    Ну дык, фирма веников не вяжет.
    Это уж точно. Я в письме тебе написал и здесь скажу: твой пост - третий в топе месяца моей статистики и абсолютный чемпион недели.

    Думается мне, мало кто заметил подмену виренса.
    У нас с тобой похожий стиль, у тебя круче оформление, да и имя автора там вверху мелкими буковками. :-)

    Ждал в комментариях стачек: «Верните Мишу!»
    Я наоборот ждал радостных вздохов "наконец-то этот старый баянщик свалил!" :-)

    Никто и не спросил, откуда я нарисовался :-)
    Это нога у кого надо нога (с) Берегись автомобиля.

    @Midas комментирует...
    Очень полезно. Уже печатаю и вешаю на стену :)
    Я кстати себе уже на работе повесил.

    @Irik комментирует...
    Спасибо, давно хотел шпаргалку
    На здоровье, только это всё Акулович.

    ОтветитьУдалить
  12. Спасибо!
    С какой версии начинает работать C+x v? У меня в Ubuntu 10.10 это сочетание не работает.

    ОтветитьУдалить
  13. Ubuntu9.04 Alt+. не работает
    Как думаете почему?

    ОтветитьУдалить
  14. @GiNeR комментирует...
    С какой версии начинает работать C+x v? У меня в Ubuntu 10.10
    А у нас в дебиане всё работает :-) Обновляйтесь до 4.6.3. Это не сложно.

    @Анонимный комментирует...
    Ubuntu9.04 Alt+. не работает. Как думаете почему?
    А разгадка одна... :-)

    ОтветитьУдалить
  15. А какой комбинацией в mc распаковать архив (любой) в новый каталог?

    ОтветитьУдалить
  16. Есть ли возможность скопировать из редактора (тот что вызывается при нажатии F4 на файле) в буфер обмена так что бы потом можно было вставить в другое приложение (на пример в GEdit)??? Сижу под Gnome если это важно.

    ОтветитьУдалить
  17. У меня какой-то неправильный Мс. На alt + ? он создаётпапку, например.

    ОтветитьУдалить
  18. Извиняюсь за задержку с ответами. Ездил в горы отдыхать от интернетов.

    @virens
    Я наоборот ждал радостных вздохов "наконец-то этот старый баянщик свалил!" :-)
    «Не дождётесь!» :-) Глянул одним глазом кухню блога, как пишутся посты — мне до подобной продуктивности и близко не приблизиться. Наши КПД отличаются на порядок, если не больше :-)

    @TiGR
    Для tar'овских архивов из меню пользователя (F2) клавишей x, а остальные, насколько мне известно, распаковываются без комбинаций.

    @Анонимный
    В mcedit есть возможность скопировать текст в иксовый буфер обмена. Надо перед выделением блока зажать клавишу Shift.

    @Анонимный
    Может конфиг какой-то залихватский используется. По умолчанию таких рокировок быть не должно.

    ОтветитьУдалить
  19. @Dr.AKULAvich комментирует...
    Глянул одним глазом кухню блога, как пишутся посты — мне до подобной продуктивности и близко не приблизиться
    Акулович, я всё это настрочил в новогодние праздники, когда у нас тут дикая жара и нечего делать. Я на комменты отвечаю по вечерам. Или рано утром.

    В mcedit есть возможность скопировать текст в иксовый буфер обмена. Надо перед выделением блока зажать клавишу Shift.
    Хм, а у меня не работает. Даже в последней версии GNU Midnight Commander, версия 4.7.5.1 Как быть!?

    ОтветитьУдалить
  20. Про выделение в MC:
    по Вашему совету не получается. Можете написать по шагам что нужно сделать?
    Как минимум для нескольких человек эта информация будет очень полезной.

    ОтветитьУдалить
  21. @virens
    Забыл добавить, блок текста выделяется манипулятором типа «мышь», то есть зажимаем Shift, выбираем мышкой текст, потом в контекстном меню выбираем «Копировать».

    ОтветитьУдалить
  22. А можно я сделаю копию этого руководства в debianforum.ru естественно со ссылкой на автора и ресурс?
    ЗЫ проект новый, давно назревал, вот и родился из недр форума ubuntu.ru
    Буду раз видеть в числе наших друзей :)
    СПАСИБО, С УВАЖЕНИЕМ BULATUS

    ОтветитьУдалить
  23. @Dr.AKULAvich комментирует...
    Забыл добавить, блок текста выделяется манипулятором типа «мышь»
    [с эстонским акцентом] Ак-куло-вич, я та-ки по-ни-мааааааю. И дажже ус-пе-вааааюю. Таааа[\с эстонским акцентом]

    Не выделяется оно.

    Аааа, выделяется, туды его в качель! Анонимус [08.02.2011 10:42:00], ежели ты ещё здесь, слухай сюда. Открываем по F3 файл, зажимаем ШИФТ и не отпускаем, потом берём мышь, тыкаем левой кнопкой в текст и тянем вниз. И оно выделяется! А потом колёсиком вставляем в приложение. Блеск! Акулович, ты гигант!

    @Анонимный комментирует...
    А можно я сделаю копию этого руководства в debianforum.ru
    Булатус, а зачем? Вдруг в тексте что поменяется, или Акулович что-то изменит. Ты останешься со старым постом.

    Потом, поисковики плохо на это смотрят - считают (и это правильно) копипастеров хреновыми сайтами и сшибают ТИЦы с Пиарами. Пустое. Скопируй начало текста и поставь ссылку.

    проект новый, давно назревал
    ... и начал с копипасты. Не лучшее начало. Пишите свои авторские посты. Так поисковики вас больше любить будут.

    Мне не жалко, просто вы становитесь, вместо самостоятельного ресурса, просто ещё одними копипастерами, коих легион.

    родился из недр форума ubuntu.ru
    А что там забыли дебианщики? :-)) Тем не менее, если уж так хочется скопировать - пожалуйста. Ссылочку таки не забудьте. И успехов в новом проекте!

    ОтветитьУдалить
  24. Насчет авторского текста Вы метко заметили, знаю что копипаста не лучшее начало, и мой грех читая Ваш блог первым делом решил скопировать на debianforum.ru (бью себя по рукам) :)
    Сделаю лучше, предложу создать раздел со ссылками на интересные ресурсы...
    Спасибо

    ОтветитьУдалить
  25. @Анонимный комментирует...
    копипаста не лучшее начало
    Копипаста бывает разная. Я иногда нахожу дурно написанные, но интересные заготовки постов. Использовав часть их текста, снабдив ссылками и картинками, я выкладываю их у себя, не забывая поставить ссылку. Народ не верит, что это не мои посты :-)

    решил скопировать на debianforum
    А смысл!? Не, ну копируйте, пожалуйста (ссылку поставьте только). Мне не жалко. Просто я правлю посты время от времени, и со ссылкой вы всегда будете получать самую свежую версию.

    Акуловичу ещё раз большое спасибо за подсказку с выделением мышью. Класс, а я и не знал :-)

    ОтветитьУдалить
  26. Virens, огромное спасибо за статьи! И за эту, и за все остальные! Исправьте, пожалуйста, мелкую грамматическую ошибку во втором абзаце поста: должно быть - ...шпаргалка НИКОИМ образом не отменяет чтения страниц man.

    ОтветитьУдалить
  27. @Анонимный комментирует...
    Virens, огромное спасибо за статьи!
    Пожалуйста. Как метко заметил главред Минору, чтобы не читать маны, я пишу посты :-)

    И за эту, и за все остальные!
    Авторство поста принадлежит ув.тов.Dr.AKULAvich. То есть я науськивал, а писал он, он :-)

    Исправьте, пожалуйста, мелкую грамматическую ошибку
    Исправлено. Спасибо, что заметили!

    ОтветитьУдалить
  28. P.S. Анонимусу выше ещё раз спасибо: был обнаружен баг, при котором не отображалось авторство поста. Баг пофиксен, и теперь авторство Акуловича видать во всей красе.

    ОтветитьУдалить
  29. Dr.AKULAvich:
    "Забыл добавить, блок текста выделяется манипулятором типа «мышь», то есть зажимаем Shift, выбираем мышкой текст, потом в контекстном меню выбираем «Копировать»."
    У меня вот как получается:
    F3 - файл - затем зажимаем Shift и выделеяем текст мышкой левой кнопкой и все еще удерживая Shift нажимаем правую! кнопку мыши и появляеться менюшка - где и выбираем скопировать!
    Можно shift выделить текст левой кнопкой - отпустить shift .... покурить, подумать - потом опять зажимаем shift и жмем правую кнопку мыши и выбираем скопировать.
    Очень ценный пост! +1 Вам :) ... А то надоело cat пользоваться ...

    ОтветитьУдалить
  30. @Анонимный
    > Очень ценный пост! +1 Вам :)
    Спасибо! :-)

    @all
    Сегодня добавил ещё одну команду. Переименование файла по сочетанию Shift + F6 удобнее всего производить. Enjoy! :-)

    ОтветитьУдалить
  31. Владимир Бредников — автор “Bappoy's blog”поделился полезными советами и сценариями использования mc. Рекомендую.

    ОтветитьУдалить
  32. Респект за ссылку на “Bappoy's blog” !!!

    ОтветитьУдалить
  33. Копирование с нажатым Shift-ом и выделением мышкой - относится к возможностям эмулятора терминала (например, Konsole), а не редактора mc. И это не позволяет скопировать текст, который не влазит на один экран. Сам, все таки перешел на vim, как копировать/вставлять у него знаю.

    ОтветитьУдалить
  34. @Анонимный
    > Копирование с нажатым Shift-ом и выделением мышкой - относится к возможностям эмулятора терминала (например, Konsole), а не редактора mc.
    Мерси за снятие покров. Не знал об этом.

    ОтветитьУдалить
  35. Приветствую! Скажите пожалуйста а есть ли у MC горячи клавиши копирования и архивации?

    ОтветитьУдалить
  36. Если открыть в MC с помощью F4 файл большого размера, как перейти в конец файла?

    ОтветитьУдалить
  37. Кстати, при помощи Shift+мышь можно выделять текст даже в файловой панели. А в коммандную строку текст вставляется с Shift+Ins. По крайней мере, у меня такая фишка при работе в ssh терминале через Putty, .

    ОтветитьУдалить
  38. Спасибо! Отличный мануал, многое поможет в работе (например, Shift+F6 просто перевернуло мою жизнь, я всегда юзал просто F6 и вместо пути вводил ручками имя файла)! В который раз убеждаюсь в необходимости изучения всех возможностей инструментов с которыми работаешь :)

    ОтветитьУдалить
  39. Благодарю за полезный пост, может ещё заодно подскажете и как лечить некоторые проблемы? ;)

    1. В Ubuntu если загрузиться в консоли (без Xorg) то почему-то не работают некоторые хоткеи, например Shift+F5, Shift+F6 - они срабатывают как будто я просто нажал F5 или F6.

    Причем Ctrl+O и комбинации вида Shift+стрелка_вверх работают нормально (т.е. кнопка Shift работают(


    2. Если открыть редактирование файла через mcedit (кнопкой F4), то комбинация Ctrl+O работает (отображает содержимое консоли на экране) но не дает ввести команду. В режиме просмотра файла (кнопкой F3) все работает нормально. Эту проблему можно как-то победить?

    ОтветитьУдалить