Midnight Commander (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи Midnight Commander. Дата последней синхронизации: 10 сентября 2015‎. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Tango-preferences-desktop-locale-modified.pngПеревод этой статьи или раздела не отражает оригинальное содержание.Tango-preferences-desktop-locale-modified.png

Причина: Last updated in 2015 (Discuss)

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

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

Установка

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

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

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

  • mc-solarized-git — Цветовая схема Solarized
https://github.com/nkulikov/mc-solarized-skin || mc-solarized-gitAUR
  • mc-skin-candy — Цветовая схема Candy
https://github.com/izmntuk/archiso/blob/master/configs/alter/root-image/usr/share/mc/skins/candy.ini[устаревшая ссылка 2020-08-04] || not packaged? search in AUR

Usage

The below section provides a short overview on usage of Midnight commander. References to mc(1) and the Help function (F1, available in every dialog) are made in this article as Section.

Совет: All hints are available in /usr/share/mc/hints/.

Interface

In prominent view are two vertical panes. Either can list directory contents, show a plain text preview, file details, or a directory tree (see Directory Tree). File operations are accessible through the function keys or the mouse. More options are visible in a dynamic user menu (F2) and option menu (F9). Keys above F12 (F13 up to F20) are accessible through Shift. Menu and dialog options have one letter highlighted - pressing this letter (or Alt+Letter inside a text entry) directly activates the respective option.

Below, a command line is visible, connected to a subshell. This shell is generally of the same type mc was launched from, and may be switched to at will (Ctrl-O), see The subshell support. On this command line, cd is interpreted by Midnight Commander, and not passed to the shell for execution. As such, special completion (such as from Zsh) is unavailable. Files in the pane interact with the command line; for example, Alt+Enter copies the name of a (selected) file to the command line.

Keybindings are generally similar to GNU Emacs. A more strict emacs keymap can be enabled (see Redefine hotkey bindings). New users may however use Lynx-like (arrow) keybindings (enabled in F9 > Options > Panel options) and mouse clicks for navigation.

Modules

These can be called via the mc interface (with Use internal enabled in F9 > Options > Configuration), or separately as symbolic links to the mc binary.

  • mcedit - Text and binary file editor, with regex replace, syntax highlighting, macros and shell piping, see mcedit(1)
  • mcview - Text and hex viewer with goto marks and regex search
  • mcdiff - Compares and edits two files in-place (C-x d)

Per mc instance, multiple modules can be run concurrently (Ctrl-`) (see Screen selector). External editors may be used instead, and parameters configured accordingly.

Configuration

Most of the Midnight Commander settings can be changed from the menus. However, a small number of settings such as clipboard commands, codeset detection and parameters for external editors can only be changed from ~/.config/mc/ini. See Special Settings and following for a complete description of options.

Additionally, the following environment variables are respected: MC_SKIN, MC_KEYMAP, MC_XDG_OPEN, MC_COLOR_TABLE, MC_DATADIR, MC_HOME, KEYBOARD_KEY_TIMEOUT_US, PAGER, EDITOR, VIEWER.

See also Files.

extfs

extfs allows to easily create new virtual filesystems for mc. See /usr/lib/mc/extfs.d/README for details.

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

Переназначение сочетаний клавиш

Создайте копию стандартных комбинаций клавиш для текущего пользователя:

cp /etc/mc/mc.keymap ~/.config/mc/

и отредактируйте файл под свои нужды. Вы можете использовать также другие файлы .keymap. Например, можно установить /etc/mc/mc.emacs.keymap при помощи переменной окружения MC_KEYMAP:

export MC_KEYMAP=/etc/mc/mc.emacs.keymap

Смотрите также mc(1) для получения более подробной информации.

Навигация стрелками

Чтобы иметь возможность навигации по каталогам с помощью клавиш со стрелками как в Lynx, перейдите в меню Options (F9, o) > Panel Options (p) и установите флажок Lynx-like motion в группе Navigation (y), затем нажмите OK (o).

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

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 из AUR и создайте псевдоним для mc в файле инициализации вашей командной оболочки (например, ~/.bashrc или ~/.zshrc):

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

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

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

TRASH_CAN = .Trash
INTERCEPT_RENAME = NO
IGNORE_EXTENSIONS= o;exe;com

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

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

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

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

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

При выходе, командная оболочка вернет вас с тот каталог, в котором вы запустили Midnight Commander. Если вы хотите, чтобы оставался текущий каталог, выбранный в Midnight Commander, простым решением будет просто скрывать интерфейс, не прерывая сеанс программы, нажатием Ctrl+O.

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

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

Opening files

mc uses xdg-open to open files by default, as shown in /usr/lib/mc/ext.d/. While stderr is redirected, stdout is not, which may result in a garbled screen.

/usr/lib/mc/ext.d/*.sh
[ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open"
...
open)
    "${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" 2>/dev/null || \
        do_open_action "${filetype}"

Create a script to wrap xdg-open:

~/bin/xdg-open-null
#!/bin/bash
xdg-open "$@" >/dev/null

If mc is blocked until xdg-open ends, detach the process:

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

and make mc aware of it by setting the MC_XDG_OPEN environment variable:

export MC_XDG_OPEN=~/bin/xdg-open-null
Совет: When #Использование libtrash, add unset LD_PRELOAD before xdg-open in the script.

Find file shows no results

If the Find file dialog (accessible with Alt+?) shows no results, check the current directory for symbolic links. Find file does not follow symbolic links, so use bind mounts (see mount(2)) instead, or the External panelize command.

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