Midnight Commander (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Midnight Commander. Дата последней синхронизации: 28 декабря 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Midnight Commander — двухпанельный файловый менеджер, поддерживающий стандартные файловые операции, виртуальные файловые системы, панелизацию внешних комманд и пользовательские меню. Он также включает в себя встроенный просмотрщик, редактор файлов и инструмент для просмотра различий.

Midnight Commander имеет графический интерфейс, который отображается в текстовом режиме. Он работает в обычной консоли, внутри терминала X и через SSH-соединение на всех видах терминалов.

Установка

Установите пакет mc.

Последняя нестабильная версия доступна в пакете mc-gitAUR.

Дополнительные темы

Midnight Commander поставляется с большим числом встроенных тем. Вы можете выбрать тему в меню Настройки > Оформление.

Можно дополнительно установить сторонние темы:

  • mc-solarized-git — Цветовая схема Solarized
https://github.com/nkulikov/mc-solarized-skin || mc-solarized-gitAUR
  • mc-skin-modarin-debian — Thin versions of the modarin theme
https://launchpad.net/debian/+source/mc/3:4.8.13-3 || mc-skin-modarin-debianAUR

Смотрите также mc(1) § Skins.

Использование

В этом разделе представлен краткий обзор использования Midnight Commander.

Совет: Все советы находятся в каталоге /usr/share/mc/hints/.

Интерфейс

Основой интерфейса являются две вертикальные панели. Каждая может отобразить содержимое каталога, показать предварительный просмотр обычного текста, сведения о файле или дерево каталогов (смотрите mc(1) § Directory Tree). Операции с файлами доступны с помощью функциональных клавиш или мыши. Дополнительные параметры отображаются в динамическом меню пользователя (F2) и меню параметров (F9). Клавиши после F12 (от F13 до F20) доступны через Shift. Некоторые надписи в пунктах меню и диалоговых окнах имеют одну выделенную букву — нажатие этой буквы (или Alt+Буква, если фокус находится в поле ввода) сразу выполняет соответствующее действие.

Под панелями есть командная строка, в которой запущена командная оболочка. Она обычно относится к тому же типу, из которого был запущен mc. В неё можно переключиться (Ctrl+o), смотрите mc(1) § The subshell support. В этой командной строке команду cd обрабатывает сам Midnight Commander и не передаёт её оболочке для выполнения. Файлы в панели взаимодействуют с командной строкой; например, Alt+Enter копирует имя (выбранного) файла в командную строку.

Сочетания клавиш в целом аналогичны GNU Emacs. Можно включить более строгую раскладку клавиш emacs (смотрите mc(1) § Redefine hotkey bindings). Однако новые пользователи могут использовать Lynx-подобные (стрелочные) привязки клавиш (включаются в меню Настройки > Настройки панелей) и клики мышью для навигации.

Поддержка мыши в виртуальной консоли Linux может быть получена с помощью GPM.

Модули

Их можно вызывать через интерфейс mc (с включенными пунктами Встроенный в меню Настройки > Конфигурация) или отдельно как символические ссылки на двоичный файл mc.

  • mcedit — Редактор текстовых и двоичных файлов с поддержкой замены с помощью регулярных выражений, подсветкой синтаксиса, макросами и shell piping, смотрите mcedit(1)
  • mcview — Просмотрщик текста и шестнадцатеричного кода с goto метками и поиском по регулярному выражению
  • mcdiff — Сравнивает и редактирует два файла на месте (Ctrl+x d)

Можно запускать несколько модулей одновременно в пределах одного экземпляра mc и переключаться между ними с помощью Alt+` (смотрите mc(1) § Screen selector). Вместо них можно использовать внешние редакторы и соответствующим образом настроить параметры.

Настройка

Большинство настроек Midnight Commander можно изменить из меню. Однако небольшое количество настроек, таких как команды буфера обмена, определение кодировки и параметры для внешних редакторов, меняется только через файл ~/.config/mc/ini. Описание настроек можно почитать в mc(1) § Special Settings.

Также для настройки используются следующие переменные окружения: MC_SKIN, MC_KEYMAP, MC_XDG_OPEN, MC_COLOR_TABLE, MC_DATADIR, MC_HOME, KEYBOARD_KEY_TIMEOUT_US, PAGER, EDITOR, VIEWER.

Смотрите также mc(1) § FILES.

extfs

extfs позволяет легко создавать новые виртуальные файловые системы для mc. Для более подробной информации смотрите /usr/lib/mc/extfs.d/README.

Советы и рекомендации

Запуск из меню

Midnight Commander можно запускать из меню, создав файл desktop entry. Пример:

[Desktop Entry]
Type=Application
Version=1.0
Name=Midnight Commander
Comment=Visual file manager
Exec=mc
Icon=folder
MimeType=inode/directory
Terminal=true
Categories=Utility;

Поддержка корзины

Midnight Commander не поддерживает функцию корзины.

Использование libtrash

Библиотека libtrash перехватывает вызовы функций удаления файлов и вместо удаления выполняет перемещение файлов в корзину.

Установите libtrashAUR и создайте псевдоним для mc в файле инициализации вашей командной оболочки (например, ~/.bashrc или ~/.zshrc):

alias mc='LD_PRELOAD=/usr/lib/libtrash.so mc'

Чтобы изменения вступили в силу, переоткройте сеанс терминала или просто выполните скрипт инициализации командой source.

Стандартные настройки библиотеки находятся в файле /etc/libtrash.conf.sys; по умолчанию для корзины используется каталог ~/Trash/. Вы можете переопределить их для текущего пользователя, создав пользовательский файл настроек ~/.libtrash, например:

TRASH_CAN = .Trash
INTERCEPT_RENAME = NO
IGNORE_EXTENSIONS= o;exe;com
UNCOVER_DIRS=/dev

Теперь файлы, удаляемые через mc, будут попадать в каталог ~/.Trash/.

Важно:
  • У этого способа существует побочный эффект: программы, запущенные из mc наследуют переменную окружения LD_PRELOAD, которая может вызывать проблемы в их работе. Смотрите [1] для более подробной информации.
  • С установленной опцией GLOBAL_PROTECTION = YES (значение по умолчанию), файлы вне домашнего каталога будут попадать в корзину, даже если они находятся на другом разделе диска. Такие файлы фактически перемещаются копированием и удалением из исходного расположения, поэтому процедура удаления в корзину файла на другом разделе может занимать продолжительное время.

Смотрите также [2].

Решение проблем

Выход в текущий каталог

При выходе командная оболочка вернёт вас в тот каталог, в котором вы запустили Midnight Commander. Если вы хотите, чтобы оставался текущий каталог, выбранный в Midnight Commander, можно использовать специальный скрипт-обёртку, который выполнит переход в текущий каталог после закрытия mc. Добавьте алиас в ваш ~/.bashrc или ~/.zhsrc:

alias mc=". /usr/lib/mc/mc-wrapper.sh"

Теперь команда mc будет запускать этот скрипт-обёртку.

Другим простым решением будет просто скрывать интерфейс, не прерывая сеанс программы, нажатием Ctrl+O. Однако это может мешать работе других приложений в терминале.

Искаженное изображение

Нажмите Ctrl+L для перерисовки интерфейса. Эта команда перерисует изображение, но не обновит список файлов в каталогах. Для обновления списка файлов на панелях используйте Ctrl+R.

Открытие файлов

Для открытия файлов mc считывает переменную окружения MC_XDG_OPEN (если она не указана, по умолчанию используется xdg-open). [3]

Если mc блокируется до завершения процесса или процесс завершается вместе с mc, используйте nohup &:

~/bin/nohup-open
#!/bin/bash
nohup xdg-open "$@" &

И пропишите MC_XDG_OPEN соответственно:

$ export MC_XDG_OPEN=~/bin/nohup-open
Совет: Если вы настроили #Использование libtrash, также добавьте unset LD_PRELOAD перед xdg-open в этом скрипте.

Поиск файла ничего не находит

Если Поиск файла ничего не может найти, проверьте текущий каталог на наличие символических ссылок. Поиск файлов не переходит по символическим ссылкам, поэтому вместо них используйте bind mount (смотрите mount(8)) или команду Внешняя панелизация.

Сломаны сочетания клавиш

С некоторыми определениями терминалов вроде screen-256color или xterm-termite сочетания клавиш, такие как Shift+F6, могут не работать или работать как другие сочетания. Чтобы исправить это, назначьте последовательности терминала вручную в диалоговом окне Распознавание клавиш в настройках.

Настройки сохранятся в ~/.config/mc/ini, например для screen-256color:

Примечание: В этом примере F13F20 назначены на Shift+F3Shift+F10.
[terminal:screen-256color]
f1=\\eOP
f2=\\eOQ
f3=\\eOR
f4=\\eOS
f5=\\e[15~
f6=\\e[17~
f7=\\e[18~
f8=\\e[19~
f9=\\e[20~
f10=\\e[21~
f11=\\e[23~
f12=\\e[24~
f13=\\e[1\;2R
f14=\\e[1\;2S
f15=\\e[15\;2~
f16=\\e[17\;2~
f17=\\e[18\;2~
f18=\\e[19\;2~
f19=\\e[20\;2~
f20=\\e[21\;2~
complete=\\e^i
backtab=\\e[Z
backspace=^?

Нет жирного текста в urxvt

При запуске в urxvt с настройкой TERM по умолчанию, текст, который обычно выделяется жирным шрифтом во многих других терминалах, здесь не будет жирным. Корень проблемы в том, что xterm объединяет яркий цвет текста с атрибутом жирного шрифта (таким образом, яркие цвета всегда будут отображаться жирным шрифтом в xterm).

urxvt не имеет этого ограничения, которому следует Slang (библиотека, которую mc использует для отображения текста по умолчанию). Поскольку Slang может отделить полужирный атрибут от ярких цветов на urxvt, mc потребуется явно указать полужирный атрибут, если это необходимо (чего он не делает).

Решение состоит в том, чтобы настроить mc на явное использование полужирных цветов по желанию, например отредактировав скин по умолчанию следующим образом:

$ mkdir ~/.local/share/mc/skins 
$ cp /usr/share/mc/skins/default.ini ~/.local/share/mc/skins/
$ sed -i -E 's/^(.* = (gray|brightred|brightgreen|yellow|brightblue|brightmagenta|brightcyan|white);.*)$/\0;bold/' ~/.local/share/mc/skins/default.ini

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

Другой обходной путь — прописать TERM=xterm, однако это вызывает другие проблемы из-за несоответствия termcap/terminfo, например, некоторые клавиши не работают.

Смотрите также