# Midnight Commander

GNU Midnight Commander (mc) est un gestionnaire de fichiers multiplate-forme inspiré de Norton Commander et écrit par Miguel de Icaza.
Midnight Commander est une application en mode semi-graphique. L'interface principale se compose de deux « panneaux » qui affichent les fichiers présents par rapport à leur emplacement sur le disque.
Midnight Commander inclut un éditeur de texte interne avec le repérage de la syntaxe, un outil permettant de visualiser le contenu d'un RPM, et un autre permettant de se connecter à un serveur FTP.
C'est un logiciel libre distribué selon les termes de la licence GNU GPL. Il fait partie du projet GNU.

## Conception

Midnight Commander est une application console avec une interface utilisateur en mode semi-graphique (grâce à la bibliothèque ncurses). L'interface principale se compose de deux panneaux qui affichent le système de fichiers. La sélection des fichiers est effectuée à l'aide des touches fléchées, la touche d'insertion est utilisée pour sélectionner les fichiers et les touches de fonction permettent d'effectuer des opérations telles que le renommage, l'édition et la copie de fichiers. Les versions ultérieures de Midnight Commander prennent également en charge la souris. De telles versions sont compatibles avec les émulateurs de terminaux GPM et X (tels que le terminal GNOME ou xterm) qui prennent en charge les rapports de souris. Lors de l'exécution dans un terminal X, ces versions peuvent mettre à jour le nom de la fenêtre dans laquelle Midnight Commander s'exécute (si cela est autorisé par l'émulateur de terminal).
Les fonctions de Midnight Commander incluent la possibilité d'afficher le contenu des fichiers de paquetages RPM, de travailler avec des formats d'archive courants comme s'il s'agissait simplement d'un autre répertoire et de fonctionner comme client FTP ou FISH. Midnight Commander inclut également un éditeur appelé mcedit, qui peut être exécuté en tant que programme autonome ou à partir de Midnight Commander en utilisant la touche F4. Les fonctionnalités de mcedit incluent la coloration syntaxique pour de nombreux langages, les macros, les extraits de code, l'intégration simple avec des outils externes, l'indentation automatique, la prise en charge de la souris, le presse-papier. Les utilisateurs ont également la possibilité de remplacer mcedit par l'éditeur de leur choix (Menu Options> Configuration> [Ne pas] Utiliser les modifications internes).
Midnight Commander peut également renommer des groupes de fichiers, contrairement à d'autres gestionnaires de fichiers qui ne peuvent renommer qu'un fichier à la fois. Ceci est pratique pour manipuler de grandes collections de fichiers, par ex. pour les rendre conformes à une nouvelle convention de dénomination. Midnight Commander peut également déplacer des fichiers vers un répertoire différent en même temps qu’il les renomme. Il permet à l'utilisateur de spécifier les noms de fichiers originaux et résultants à l'aide de caractères génériques. Cela rend la puissance des expressions régulières disponible pour renommer des fichiers, avec une interface utilisateur pratique. De plus, l'utilisateur peut choisir d'utiliser ou non des "modèles de shell" ou des "globs" (regroupement automatique des caractères génériques). Toutes ces fonctionnalités sont disponibles à l'aide de la sélection de menu Fichier> Renommer / Déplacer. (Appuyez sur F1 pour produire une brève explication des options, y compris des exemples d'utilisation de caractères génériques.)
Midnight Commander est basé sur des interfaces de texte polyvalentes, telles que Ncurses ou S-Lang, qui lui permettent de fonctionner sur une console classique, dans un terminal X Window, via des connexions SSH, via une interface RS-232 sortes de coquilles distantes.

## Prise en charge d'Unicode

La prise en charge native des paramètres régionaux UTF-8 pour Unicode a été ajoutée en 2009 aux versions de développement de Midnight Commander. À partir de la version 4.7.0, mc supporte Unicode.