IT Notes

Десять советов для эффективного использования Midnight Commander

Введение

В другой своей заметке Почему я пользуюсь Openbox? я уже писал о том, что главное требование, которое нужно предъявлять к компьютеру и операционной системе, - эффективность и скорость отклика. И действительно, кому нужны красивые графические интерфейсы с "удобными" кнопками, если для того, чтобы ими пользоваться, приходится применять крайне неэффективное устройство ввода - мышь? Время работы компьютера сейчас стоит намного дешевле, чем несколько десятков лет назад. Но ваше собственное время нужно экономить и использовать продумано. Компьютер достаточно быстро решает все задачи, но за их постановку приходится отвечать вам. Чем быстрее вы сообщите о том, что хотите получить, тем раньше компьютер приступит к решению проблемы.

Лично я уже давно отказался от использования файловых менеджеров с графическим интерфейсом и под Linux применяю исключительно Midnight Commander. И сейчас я дам несколько простых советов, которыми пользуюсь сам, чтобы достичь еще большей эффективности при работе с MC.

Совет 1. Используйте закладки

Если вам нужно часто переходить в одни и те же каталоги, то создайте для них закладки в "Каталогах быстрого доступа". Чтобы открыть соответствующее диалоговое окно в MC, нажмите сочетание клавиш Ctrl+\. Если у вас еще нет закладок, то вы увидите следующее:

directory_hotlist

Первым делом вам нужно будет заполнить этот список. Для этого добавьте в него те каталоги, к которым вам требуется частый доступ. Удобнее всего это сделать, когда вы уже находитесь в нужном каталоге и вызвали диалоговое окно с помощью Ctrl+\. В этом случае вам достаточно выбрать с помощью клавиши Tab пункт "Добавить текущий". Таким образом вы также можете сохранять параметры подключения к FTP-серверам или Shell-соединениям. При желании можно компоновать все по группам, создавая иерархические структуры, но это усложнит доступ и уменьшит преимущества от использования закладок.

Когда список будет скомпонован, то чтобы воспользоваться им в дальнейшем, вам вновь потребуется нажать Ctrl+\. Однако теперь достаточно выбрать один из заранее подготовленных пунктов и нажать клавишу Enter. Для выбора пунктов эффективнее всего использовать цифровые клавиши 0-9. Нажатие на ноль переводит вас к выбору первой строки, нажатие на единицу - на вторую строку и т.д. Однако Enter для подтверждения выбора нажать все равно придется. При этом учитывайте, что на первой позиции имеет смысл разместить самый часто вызываемый каталог, в который вы будете переходить чаще всего. Для меня таким каталогом служит домашняя директория. Если вы не будете забывать использовать закладки, то скоро доведете переход в часто используемые каталоги до автоматизма. И для этого потребуется не более 3 нажатий клавиш.

Совет 2. Применяйте быстрый переход

Если в какой-то каталог вы переходите относительно редко, то можете решить, что его не следует добавлять в закладки. И, скорее всего, окажетесь правы. Но если у него имеется хорошее запоминающееся имя, то пробираться к нему откуда-то издалека может оказаться слишком неэффективным и занять много времени. Для этой цели в MC предусмотрена функция "Смены рабочего каталога". Она вызывается с помощью комбинации клавиш Alt+C. Вот как оно выглядит:

quick_cd

В нем вы можете ввести полный или относительный путь к нужному каталогу, как вы сделали бы это с помощью команды cd. Например. вы можете нажать Alt+C, ввести /etc/mysql/ и нажать Enter. После чего окажетесь в каталоге с настройками MySQL, конечно, если он у вас, установлен.

Совет 3. Не ищите файлы вручную

Когда вы уже попали в нужный каталог, то настает время поиска файлов. Самым примитивным и неэффективным решением для этой задачи может оказаться ручной просмотр содержимого. Если вы знаете, что хотите найти, то ни в коем случае так не делайте. В MC для этого предусмотрены другие гораздо более эффективные методы.

Первый из них заключается в использовании "Быстрого поиска". Вызвать его можно с помощью комбинации клавиш Ctrl+S. Делать это нужно после того, как вы уже оказались в нужном каталоге и знаете, что файл расположен прямо в нем, а не в одном из его подкаталогов. Например, мы хотим скопировать файл библиотеки libQtGui.so из /usr/lib/. Для этого сначала переходим в каталог с помощью "быстрого перехода" из второго совета. Затем нажимаем сочетание клавиш Ctrl+S и начинаем набирать *QtGui. Как вы уже поняли, быстрый поиск поддерживает шаблоны поиска. В результате выполнения этих действий вы увидите что-то подобное:

quick_search

Близко, но это не тот файл, который нам нужен. Поэтому мы можем уточнить шаблон поиска и продолжить печатать до *QtGui.so, однако и это не приведет нас к успеху, поскольку для искомой библиотеки еще имеются символические ссылки. Чтобы продолжить поиск мы просто нажимаем еще раз комбинацию клавиш Ctrl+S и получаем следующее соответствие шаблону поиска, которое через несколько нажатий приведет нас к искомой библиотеке.

Но что делать в случае, если вы знаете имя файла и находитесь в нужном каталоге, но у него много подкаталогов, и вы не уверены, в каком из них находится искомый файл? Для этого в MC предусмотрено диалоговое окно "Поиск файла". Вызвать его можно с помощью комбинации клавиш Alt+? (не забудьте нажать Shift). Выглядит это диалоговое окно следующим образом:

search

Оно предоставляет весьма мощные возможности. Вы можете не только рекурсивно искать файлы по шаблону, но и учитывать при поиске содержимое файлов, для чего можете применять регулярные выражения. В примере, представленном на скриншоте, я осуществляю поиск всех cpp-файлов, в которых используется iostream. Следует заметить, что точно такого же результата вы могли добавиться с помощью комбинации утилит find и grep:

find -type f -name "*.cpp" -exec grep -H "#include <iostream>" {} \;

Совет 4. Переключайтесь на консоль при необходимости

В конце предыдущего совета я показал, что то действие, которое позволяет выполнять MC, не намного сложнее выглядит в виде консольной команды. А бывают такие случаи, когда консольная команда оказывается более эффективной, намного более эффективной. Вы можете держать запущенным еще один экземпляр терминала или использовать вкладки, но это приведет к потере контекста. То есть скорее всего, команду нужно будет выполнить именно в том каталоге, который сейчас открыт с помощью MC. Консольные команды можно вводить в нем самом (в нижней части окна), но это не слишком удобно, хотя стоит признать, что иногда полезно. Такое ограничение связано с тем, что часть весьма эффективных комбинаций клавиш командных оболочек переопределены в MC и не могут быть использованы. Поэтому не забывайте про комбинацию клавиш Ctrl+O. С ее помощью вы сможете переключаться между консолью и сеансом MC.

Совет 5. Просматривайте содержимое каталогов эффективно

Если вы еще не знаете, что именно ищете, то возможности поиска из третьего совета вам не помогут. Придется просматривать содержимое каталогов вручную. Но нужно делать это правильно. Интерфейс MC разбит на две панели. Используйте это по максимуму. Когда указатель MC находится над каталогом, содержимое которого вы хотите увидеть, то нажмите комбинацию клавиш Alt+O. В этом случае он откроется на соседней панели. А курсор на рабочей панели сдвинется на одну позицию вниз. Этот же прием будет работать и для просмотра содержимого каталога, который расположен на один уровень иерархии выше. Для этого нужно нажать Alt+O, когда курсор будет находиться над файлом, а не каталогом, или над обозначением родительского каталога /.. (в самом верху). Если же вы решите, что на второй панели имеет смысл отобразить тот же самый каталог, который сейчас открыт в рабочей панели, то нажмите сочетание клавиш Alt+I. Причем, на второй панели не только отобразится содержимое того же каталога, но и положение курсора у него будет установлено на том же файле или каталоге, который был выбран на рабочей панели в момент нажатия комбинации клавиш.

Совет 6. Не пользуйтесь мышью и стрелками на клавиатуре

Я уже говорил, что мышь - это крайне неэффективное устройство ввода. Но и на клавиатуре пытайтесь все время держать руки в рабочей позиции над клавишами фыва и олдж. Если вы будете тянуться до клавиш стрелок, то просто потеряете время. Чем меньше движений, тем эффективнее вы работаете. К тому же, в MC все для этого предусмотрено. Вместо того, чтобы нажимать стрелку вверх, используйте сочетание клавиш Ctrl+P, а вместо стрелки вниз нажимайте Ctrl+N. Но и это еще не все. Вместо PgUp нажимайте Alt+V, а вместо PgDown - Ctrl+V. Если же вы захотите, чтобы курсор MC попал на верхний отображаемый в текущий момент файл, то нажмите Ctrl+G, если на нижний отображаемый файл, то Ctrl+J, а на средний - Ctrl+R. Еще одной полезной комбинацией клавиш из этого семейства является Ctrl+I. Ее использование равносильно нажатию клавиши Tab и позволяет переключаться между вкладками.

Совет 7. Пользуйтесь историей перемещений по каталогам

Пользоваться историей действий, которые вы уже делали, всегда правильно. Это же утверждение справедливо и для перемещения по каталогам. Крайне неэффективным выглядит переход в предыдущий каталог в MC через /.., а если таких переходов было много или вы сделали "быстрый переход", воспользовавшись вторым советом? С помощью команды cd представленная задача решается достаточно легко:

cd -

Таким образом вы можете переместиться в предыдущий просматриваемый каталог с помощью простой команды. Но MC позволяет сделать то же самое еще эффективнее. Для этого достаточно нажать комбинацию клавиш Alt+Y. Однако MC идет еще дальше и позволяет ходить по истории каталогов в обе стороны. Например, вы случайно нажали лишний раз Alt+Y и ушли слишком далеко. В этом случае вернуться на один шаг вперед вы можете с помощью Alt+U.

Это крайне удобная и полезная возможность. В то же время она настолько естественная, что привыкнув к ней, вы постоянно будете ей пользоваться.

Совет 8. Не вводите одни и те же команды более одного раза

В предыдущем совете мы поговорили об эффективном использовании истории перемещений по каталогам, но чем команды хуже? Например, для командой оболочки bash предусмотрено сочетание клавиш Ctrl+R. Оно позволяет по началу команды получить ее продолжение, если вы уже набирали ее полную версию хотя бы один раз. К сожалению, насколько мне известно, в MC такой функции не предусмотрено. Однако для некоторых простейших случаев может хватить и того, что в нем есть. Если вы выполнили в MC какую-нибудь простую команду, то повторить ее ввод вы можете с помощью комбинации клавиш Alt+P. Но как и в случае истории каталогов, вы можете перемещаться по истории команд назад и вперед. О том, как ходить назад нам уже известно, но вы могли догадаться и о комбинации клавиш для передвижения вперед: Alt+N. То есть прослеживается явная аналогия с сочетаниями клавиш для перемещений из шестого совета. Кроме того, вы можете вызвать диалоговое окно с историей команд с помощью Alt+H. По нему вы можете перемещаться с помощью Ctrl+P, Ctrl+N, Ctrl+V и Alt+V, как по содержимому панелей.

Совет 9. Делайте выделение файлов правильно

Предположим, что вам потребовалось скопировать все заголовочные h-файлы из текущего каталога на флешку, которая смонтирована в /media/flash_drive/. Вы можете добиться этого относительно легко с помощью следующей команды:

cp *.h /media/flash_drive/

Ничего сложно, но неужели нельзя сделать это в MC? - Конечно, можно. Если файлов мало, то вы можете просто выбрать их вручную с помощью Ctrl+T. Просто нажмите эту комбинацию, когда курсор MC будет расположен над нужным файлом, и он добавится к выделению. На другой панели откройте каталог назначения. Снова вернитесь на панель с файлами и нажмите F5. Но если файлов много? Тогда этот вариант не пойдет, иначе вы потратите слишком много времени. Правильным вариантом является выбор файлов с помощью комбинации клавиш + (т.е. Shift+=). Вот какое диалоговое окно вы должны увидеть, если нажмете ее:

mark_group

Я уже ввел шаблон поиска для заголовочных файлов, поэтому после нажатия Enter они будут отмечены и готовы к копированию. Все здорово, но что делать в случае, когда нам требуется скопировать все файлы, КРОМЕ заголовочных. На самом деле, все уже почти готово. Просто после выбора всех заголовочных файлов так, как мы уже сделали, нажмите * (т.е. Shift+8), что приведет к инверсии выбора. Таким образом, выделенными окажутся все файлы, кроме заголовочных.

Совет 10. Печатайте как можно меньше

Этот совет можно отнести вообще практически ко всему. Пытайтесь достигать результата с помощью меньшего числа нажатий на клавиши. Чем меньше вы сделали движений, тем больше у вас останется времени, которое вы можете потратить с пользой.

Например, когда вы набираете новую команду в терминале, то всегда используйте автодополнение. Для bash и подобных ему автодополнение вызывается с помощью клавиши Tab. В MC Tab по умолчанию переключает вас между панелями и не может быть использован при вводе команд. Но ничего страшного. Вместо Tab используйте комбинацию Alt+Tab и все будет работать.

Если вам нужно выполнить в MC какую-то команду относительно нескольких файлов в текущем каталоге, то не набирайте их имена вручную. Выделите их, применив рекомендации из девятого совета, и нажмите комбинацию клавиш Ctrl+X T (сначала Ctrl+X, затем T). Это приведет к тому, что их имена добавятся к набираемой команде и могут быть использованы в качестве аргументов заранее набранной команды.

Заключение

На этом мы заканчиваем рассмотрение советов по эффективному использованию замечательного файлового менеджера Midnight Commander. Он обладает всеми необходимыми возможностями, которые нужны для эффективного управления вашей файловой системой. В представленных советах я привел лишь основные его возможности и быстрые клавиши, которыми пользуюсь сам ежедневно. Поэтому в качестве одиннадцатого совета могу рекомендовать полистать документацию по MC и обратить внимание на другие сочетания клавиш, которые в нем есть. Возможно, что-то из этого поможет вам сэкономить немало времени.

Похожие публикации

Комментарии

Достойно. Лаконично. Полезно.

Но, наверное, ДО прочтения нужно "поиметься" с mc…

Всё-таки, "прямо и быстро" работающих аналогов Total Commander'у не нашел (самый близкий и лучший :) по интерфейсу - mucommander, но вылетает за день раз 20 (на 14.04.1-Ubuntu), так что - не вариант… и меееедленно) …

Видно, стои/т/ло сразу осваивать идеологию midnight'a.

Оч. быстро и без глюков.

В общем, БАЛШОЙЕ СЭПСИБОУ, ДАРАГОЙ ТАВАРИСЧ!

Пожалуйста. Спасибо за отзыв :)

1. Выделяю файлы, жму F5 ../foo/*. Нормальные файлменеждеры (Far) создают foo и копируют файлы в нее. MC пишет, что директории foo не существует. Им что, религия не позволяет ее создать?

2. Пишу в командной строке gcc <ключи>, несколько раз добавляю туда файлы по Ctrl-Enter. Вызываю, жму Ctrl-O, чтобы посмотреть вывод, возвращаю набранную строку, чтобы добавить в нее что-то еще. Снова Ctrl-O — возвращенная строка исчезла. Оказывается, командная строка под панелями MC и консоль, в которую он выводит результат, не имеют ничего общего. У нее своя командная строка, с MC никак не связанная. За такое вообще убивать надо (и не надо мне про совет 8, этот костыль не отменяет того, что строки разные)

Это только то, что вспомнил навскидку, там таких "фичей", дающих незабываемое "удобство", вагон и маленькая тележка.

P.S. Сейчас Far наконец-то портировали под ликукс, но качество переноса, пока что, оставляет желать: большая часть нужных фич не работает или работает криво, так что Far для виндос, запущенный через wine, часто справляется лучше, несмотря на чуждость его среде.