wiki:doc/faq
Last modified 3 years ago Last modified on 09/05/11 13:53:34

Originally from FAQ in repo

TOC()?

Fequently Asked Questions

Getting started

1.1 What is Midnight Commander?

GNU Midnight Commander is a user-friendly yet powerful file manager and visual shell, useful to novice and guru alike. It provides a clear, user-friendly, and somewhat protected interface to a Unix system while making many frequent file operations more efficient and preserving the full power of the command prompt. After some practice, you will wonder how you could ever live without it.

1.2 Does it run on my machine?

GNU Midnight Commander runs on POSIX (Unix-like) operating systems, such as GNU/Linux, FreeBSD, Mac OS X, Solaris, HP-UX and others. It can also be compiled under Cygwin on Windows.

GNU Midnight Commander uses GNU Autoconf which should automatically configure it for every Unix clone. Following configurations have been tested in the past (this list is very old):

  • i386-*-linux1.x, 2.x
  • alpha-linux-linux2
  • sparc-linux-linux2.x
  • sparc64-linux-linux2.1
  • mips-sgi-irix5.x, 6.x
  • mips-dec-ultrix4.3
  • rs6000-ibm-aix3.2.5
  • sparc-sun-sunos4.1
  • sparc-sun-solaris2.3, 2.4, 2.5
  • sparc-sun-netbsd1.0
  • hppa-hp-hpux9
  • hppa-hp-hpux7
  • m68k-apple-aux
  • unixware
  • mc88110-aviion-dgux5.4R2.01
  • i386-*-sco3.2v4.2
  • i386-*-sco3.2v5

1.3 Does it work with my terminal?

Yes, it does.

Because GNU Midnight Commander is a full screen program it doesn't run on dummy terminals but anything more advanced will do (like vt100). If your terminal works with vi, emacs, elm or pine it will work with GNU Midnight Commander.

1.4 What else do I need to run MC?

You need a POSIX (Unix compatible) operating system. If you are running Windows, use Cygwin.

To compile any edition you need to have glib 2.x installed. It's available at ftp://ftp.gtk.org/pub/gtk/.

If you want to use mouse on the Linux console you need the gpm daemon from ftp://ftp.systemy.it/pub/develop/. You need nothing extra to use mouse on xterm.

If you do not want to use the S-Lang library you could try using ncurses version 4.1 and above.

1.5 Is GNU Midnight Commander Public Domain? Copyrighted?

Midnight Commander is under GNU Public License which basically means that you may freely copy, change and distribute it, but that you may not impose any restrictions on further distribution, and that you must make the source code available. This is not the same as Public Domain. For details, the GNU license is included in GNU Midnight Commander source distribution (the COPYING file).

Midnight Commander is now officially a part of the GNU project. All the authors of GNU Midnight Commander have given all their rights on the program to the Free Software Foundation.

1.6 Where can I get GNU Midnight Commander?

The main site is http://www.midnight-commander.org

1.7 I cannot compile MC. What should I do?

Make sure you have read the INSTALL file in the sources. Report the error messages exactly as they appear, mention the versions of your OS, your compiler and whatever else software you think is relevant. If you have compile problems in the VFS code, try disabling it by using "--disable-vfs" option.

2 Keyboard

2.1 What does documentation mean with the C-?, M-? and F? keys?

GNU Midnight Commander documentation uses emacs style names for keyboard keys.

C stands for the Ctrl key. For example, C-f means that you should hold down the Ctrl key and press the f key.

M stands for the Meta key. Your terminal might call it Alt or Compose instead of Meta. For example, M-f means that you should hold down the Meta/Alt/Compose? key and press the f key. If your terminal doesn't have Meta, Alt or Compose or they don't work you can use Esc. For M-f press the Esc key and then press the f key.

Sometimes Ctrl and Alt are used instead of C and M for simplicity. Keep in mind that Alt can actually be Meta on some keyboards.

F? stands for a function key. If your terminal doesn't have function keys or they don't work you can use Esc. For example, for F3 press the Esc key and then press the 3 key.

2.2 Why don't function keys (or some other key) work?

Your terminfo or termcap database has missing or incorrect definitions for function keys. Type "mc -V" to see what terminal database is being used. If the result is "using the S-Lang library with terminfo database" and you are using a very old terminfo database, consider installing one of the enhanced terminfo files included in GNU Midnight Commander source distribution. For example, if you are using xterm type "tic xterm.ti".

If the result is "using the S-Lang library with termcap database" you should fix your /etc/termcap database.

Up-to-date termcap and terminfo databases are available here:

If you don't have permissions to edit terminal databases you can use Learn keys feature of Midnight Commander instead. Press Esc 9 o k and follow instructions.

If all else fails you can emulate function keys by first pressing the ESC key and then one of the number keys. For example, if you want to produce F9, press ESC, then 9. If you don't have a ESC key on your keyboard you can try alt-9 or meta-9.

2.3 How do I use function keys F11 to F20?

These are normally mapped to function keys F1 to F10 with Shift held, e.g. function key F13 can be activated by pressing Shift-F3. You can define the keys this way in the Options->Learn Keys dialog. The convention for PC keyboards is that F11-20 always means Shift with F1-10.

You may find that on the Linux console with some keyboard layouts Shift-Fn is interpreted as F(n+12), not as F(n+10). This is a result of non-uniformity of keyboard layouts. This is not an intended behavior and it may be fixed some day. In the meantime, use "Learn Keys" to remedy this inconvenience.

2.4 Why does the ESC key behave funny?

Midnight Commander uses the ESC key as a prefix for simulating the Meta and Alt keys (for terminals which don't have Meta or Alt, see the three previous questions). For example, pressing ESC-a is the same as pressing Meta-a. In addition most terminals use ESC for internal representation of arrow keys, function keys and other enhanced keys. If you want to use ESC to cancel things you have to press it twice i.e. ESC-ESC. If you find this cumbersome you can generally use F10 to cancel. Alternatively turn on the old_esc_mode setting in the ~/.mc/ini file. The old_esc_mode setting makes ESC work as a prefix only if another key is pressed within 0.5 seconds. After 0.5 seconds the ESC key cancels. There is no way to make ESC cancel immediately (if we want to be able to use arrows keys and function keys).

2.5 How can I add the plus sign (+) on the command line?

Press C-q first, then press the + sign.

The plus key is the hotkey for the select files command. If you want to add a literal plus on to the command line you must quote it by pressing C-q first.

Another common key which needs the C-q prefix is backslash "\".

2.6 C-o doesn't work!

Maybe C-o is a stty control character on your terminal. See man stty for details on how to list and change stty control characters.

2.7 What 'keys' are the "a1" and "c1" keys mentioned in the manual?

The "a1" key is the key which has the "a1" caption on it.

The "c1" key is the key which has the "c1" caption on it.

If you have to ask what these two keys are your keyboard hasn't probably got them. Actually, I have never seen a keyboard which has got them.

2.8 How do I change the key bindings?

There is no generic way to reconfigure the key bindings. You can use the "Learn Keys" dialog to assign keys to some actions listed in that dialog. However, most actions cannot be redefined to use different keys.

3 Mouse

3.1 How do I enable mouse support?

Invoke mc like this (without quotes): "mc -x". If this doesn't work upgrade to a terminal which compatible with the Xterm mouse sequences.

Alternatively, on Linux console you can use gpm.

3.2 How do I cut and paste text with mouse?

Hold down shift key while using mouse to cut and paste.

3.3 How do I get the extension dependent pop-up menu to pop up?

It was developed for the GNOME edition. The text-mode edition doesn't support this feature yet.

4 Display

4.1 Why do I keep getting "Terminal not powerful enough for SLang" or "Terminal not powerful enough for SLsmg"?

This means that your terminfo databases do not contain the correct definitions for your terminal.

You could try using a different terminal setting. If you use csh or tcsh:

setenv TERM vt100

or if you use sh, bash, ksh or zsh:

export TERM=vt100

4.2 Why don't line drawing characters work?

Since version 4.0.13 there's the command line option -a to force use of charaters +, |, - for line drawing (only available when compiled with S-Lang). Use the -a option if any of the suggestions below doesn't help.

In general, there are three cases:

  • Lines are shown as ASCII characters like this
     +---------+
     |         |
     +---------+
    
    This also happens when you use the -a option. Other than that possible reason is 1 or 2 (see below).
  • Lines are shown as lower case characters like this
     lqqqqqqqqqk
     x         x
     mqqqqqqqqqj
    
    Possible reason is 1 or 2 (see below).
  • Lines are shown as blanks or missing characters. Possible reason is 2 or 3 (see below).

The reason for the problem is one of following:

  1. Your terminal might not support line drawing characters. VT100 compatible terminals, rxvt and xterm and color_xterm do support them.
  2. Your terminfo or termcap database might have missing or incorrect definitions for line drawing characters. Set the acsc variable in the terminfo database like this:
           acsc=a\376k\277l\332m\300j\331n\305w\302v\301u\264t\303q\304x\263h\2600\333
    
    Don't forget issue 'tic' command. This supposes you are using PC character set. The octal values might be different for other character sets. If you are using termcap instead of terminfo, you should modify above solution appropriately.
  3. Your terminal font might not support line drawing characters. Try changing the font.

Here is Miguel's answer to Torben on this subject.

Torben:

When I load consolefonts/iso01.f16, I get perfectly right national characters, but the line drawing characters in mc get wrong. Is it a mc problem, or is it a problem with the font? (I guess it is). Is there a trick?

Miguel:

First of all, we should determine whether the font has line drawing characters or not.

If it has line drawing characters, then a new terminfo entry should be written for this specific case. Let's call this linux-iso01. The acsc variable should be modified to reflect which characters are used to do the line drawing.

If it does not have line drawing characters, then we should get rid of the switch to acsc sequences and make the acsc sequence be just a mapping to the ugly +, -, |, - characters.

You can get your terminfo definition by running the infocmp program, making the proper changes and running the tic program to compile your new terminfo database.

4.3 Can one use latin-1 characters without losing the lines?

Yes, you need a correct font and a correct termcap/terminfo database.

For font, if you use xterm try "xterm -fn fixed".

For termcap/terminfo database, change the acsc capability in the database.

4.4 I have problems with entering/viewing national characters!

Upgrade to version 4.0.12 or newer.

From the Options - Display Bits dialog select Full 8 bits or ISO 8859-1. In addition, select 8 bit input from the same dialog.

4.5 How can I get colors?

Invoke mc like this (without quotes): "mc -c".

If you get colors, be happy.

If your terminal stays black and white, your terminal doesn't support color. You might want to upgrade to a terminal which compatible with the ANSI color sequences.

If your terminal goes completely black, see the next question.

More detailed answer:

Check that your terminal supports color. color_xterm, rxvt and Linux console do support, most other terminals don't. You can test color support with following simple C program:

#include <stdio.h>

int main (void){
    printf ("\033[32m Hello world! \033[m\n");
    return 0;
}

Compile and run it. If you see "Hello world!" text in green your terminal supports color, otherwise not (however, for color_xterm see also the next question).

Check whether you are using Ncurses or the S-Lang library (type "mc -V" to find out).

With S-Lang library you can force color support by setting the environment variable COLORTERM to any value.

If you use ncurses library, check that your terminfo database supports color. If not, you should install one of the enhanced terminfo databases included in GNU Midnight Commander source distribution.

You might want to set the TERM environment variable so that you are using the correct terminfo database or termcap entry.

If you use color_xterm (or rxvt) the correct value might be xterm-color, xtermc or simply xterm.

If you use Linux console the correct value for TERM is linux or console.

4.6 My color_xterm goes completely (or partially) black!

Some color_xterm terminals define all colors as black instead of the standard ANSI colors. This makes them go completely black when you try to use Midnight Commander with colors.

You will have to override the defaults. Create a file "color.defaults" which has the following contents:

color_xterm*color0:           Black
color_xterm*color1:           Red
color_xterm*color2:           Green
color_xterm*color3:           Yellow
color_xterm*color4:           Blue
color_xterm*color5:           Magenta
color_xterm*color6:           Cyan
color_xterm*color7:           White
color_xterm*background:       White
color_xterm*foreground:       Black

(replace color_xterm with the name of your color_xterm, color_xterm mentions its name in its title bar)

Now type:

xrdb -merge color.defaults

Alternatively you can add the suggested contents of the color.defaults file to your .Xdefaults or .Xresources file (or what ever the name of your X configuration file is). Or you can replace your non-ANSI color_xterm with an ANSI color_xterm.

4.7 Where can I get xterm or rxvt?

xterm is included with the X Window System, so you probably already have it if you have X. This version is not actively maintained, but Thomas Dickey maintains his more advanced version of xterm at ftp://dickey.his.com/xterm/

rxvt has its own site http://www.rxvt.org/ - get the latest version there.

4.8 I got colors working with MC but the other programs don't work at all anymore!

Midnight Commander uses terminfo database (if available) but many other programs use termcap database. If you set the TERM environment variable to a value which has no corresponding entry in termcap database those programs stop working. You should add the new value of TERM to the termcap database.

Example: If you have set TERM to xterm-color locate from /etc/termcap the line which starts:

xterm|vs100|xterm terminal emulator

Change it to start:

xterm|xterm-color|vs100|xterm terminal emulator

5 Graphical user interface

5.1 Xview, Tk and Gnome editions?

Xview and Tk and GNOME editions have been removed from the sources.

5.2 Why is MC linked with X libraries?

GNU Midnight Commander is linked with X libraries to read key modifiers from the X Server. It may be helpful to distinguish between keys that the terminal emulator reports in the same way, e.g. PgUp? and Ctrl-PgUp?. Versions of GNU Midnight Commander after 4.6.0 will load X libraries dynamically on the systems that support it.

6 Command line problems

6.1 How do I stay in the last directory when I exit Midnight Commander?

See the description of the -P option in the Options section of the manual.

6.2 How can I access command line history?

Meta-h shows the last commands you executed from the command line. Duplicates are suppressed from the history. Commands executed from the subshell prompt are not shown.

You can put previous commands to the command line with Meta-p. Meta-n moves you forward in history.

Since version 4.1.15 all the input widgets have permanent history. You can summon the history listbox by pressing M-h.

6.3 How can I complete commands, file names, variable names and so on?

Just press M-Tab. Press M-Tab again to get a listbox if there are multiple possible completions.

6.4 I am using ksh. Can I use functions defined in the .kshrc within MC?

Sorry, MC only supports bash, tcsh and zsh functions. Ksh functions are not supported because ksh lacks the necessary hooks needed for subshell integration.

Switch to bash or zsh. They are both quite compatible with ksh. Your ksh functions should work as such or after minimal changes.

6.5 Is there any way to include additional options or hot keys to MC?

Yes, F2 invokes an user menu, which is fully configurable. You can add any shell commands to the user menu. See the mc(1) man page for more info.

Another way to add functionality is the external panelize feature. See the mc(1) man page for more info.

And finally, you can code any feature you want yourself. MC source code is free which means you can change it anyway you want. There are some limitations to make sure MC stays free. See GNU General Public License for details.

6.6 When I use Ctrl-O I don't get a subshell. How do I fix this?

Only bash, tcsh and zsh can be used as subshell. Use one of those shells as your default shell, and it will be used as subshell in GNU Midnight Commander.

6.7 Ctrl-O doesn't work at all. What happens?

Ctrl-O works if either the subshell is used or the terminal can save the output of the commands so it can be restored. If neither is true, there is absolutely nothing interesting behind the panels!

Only few terminals support screen saving. It's xterm, rxvt and other xterm-like terminals and virtual terminals on Linux and FreeBSD.

6.8 I see lot of strange 'cd "printf ' lines into my .history file

Add export HISTCONTROL="ignoreboth" into your ~/.profile file (.bash_profile) for avoid this.

6.9 I have a problem with Screen which makes using Midnight Commander problematic. I use ctrl-o to disable panels. Output of previous commands, just a clear, screen is blanked.

Update GNU Screen to the last version. This bug was fixed in

commit ad56f746c6243d45124485d198d577bdbb78071c
Author: Sadrul Habib Chowdhury <sadrul@users.sourceforge.net>
Date:   Sun Nov 29 23:34:25 2009 -0500

    Fix using alternate screen buffers in some cases.
    
    Screen would reset the 'main' screen buffer if an app tries to
    switch to an alternate buffer while it is already using one (in
    other words, sends multiple 'smcup' without an 'rmcup'). This should
    fix debian #558724

see debian bug #558724

or

do not rewrite TERM (mustbe TERM=screen) run mc as follow

  echo -e '\e[?1000h' && mc -x

7 Virtual file systems

7.1 How can I see the contents of a tar archive?

If you use keyboard just move the selection bar on the tar file and press enter. If you use mouse just double-click on the tar file.

The recognized suffixes for tar archives are .tar, .tar.gz and .tgz. You can also enter a tar archive by typing "cd filename#utar" where filename is the name of the archive. In this case, the suffix is not important.

7.2 How do I get out of a tar archive?

Just press enter on the toplevel ".." file or change to a non-tar directory. Just typing "cd" with no parameters is enough (it will take you to your home directory).

7.3 How do I do anonymous ftp with MC?

Just type "cd ftp://hostname" where hostname is the name of the host you want to connect. Alternatively, select FTP link from the Left or Right menu and type the name of the host you want to connect.

7.4 How do I do non-anonymous ftp with MC?

Non-anonymous ftp works just like the anonymous ftp but you give the login name with the host name. For example, type "cd ftp://username@hostname".

7.5 How do I close an ftp connection?

Just change to a non-ftp directory. Simply typing "cd" with no parameters is enough (it will take you to your home directory).

GNU Midnight Commander closes ftp connection automatically after a timeout or on exit. It's possible to force disconnect by selecting "Command" -> "Active VFS List" in the menu and using the "Free VFSs Now" button.

7.6 Why aren't the contents of ftp panel updated?

Update is skipped because there would be a serious performance penalty. Constantly updating directory panels through a ftp connection would take too much time.

You can use C-r to force an update.

7.7 What kind of proxy server works with Midnight Commander?

There are two kinds of ftp proxies: proxies for ftp clients and proxies for web browsers.

Midnight Commander only supports ftp proxies which are meant for ftp clients. Common WWW proxies (like Squid) are not supported. A rule of thumb is that if a ftp proxy requires a web browser, it won't work with Midnight Commander.

8 Other common problems

8.1 When I try pasting to the internal editor, it indents the amount of indenting increases with each line!

Either turn off 'Return does autoindent' in the editor options or update GNU Midnight Commander to version 4.6.0 or above - it doesn't autoindent when you are holding Shift.

8.2 Is it possible to use Colorer for syntax highlighting?

Yes if you submit the patch. There are no legal problems with it because it's licensed under GPL now. The homepage of Colorer is http://colorer.sourceforge.net/

9 Other common problems

Use the directory hotlist. Just press control-backslash. If your national keyboard layout doesn't have backslash key, just press the control key with the key which is the backslash key in the English keyboard layout.

9.2 When I start Midnight Commander, nothing happens!

When MC is compiled with Samba support, have a look at the "interfaces = ..." line in your smb.conf file. MC uses pretty old Samba code that only expects IP addresses and host names there, but not network interface names (like eth0). MC interprets these names as host names and tries to resolve them using a DNS server. To fix this, ask your system administrator to change the interface names to their assigned IP addresses, or (untried) add the interface names and their IP addresses to the /etc/hosts file.

First, invoke MC without subshell support: "mc -u". If this helps check the shell you are using. Subshell support works best with bash, although tcsh and zsh are also supported. You might want to upgrade your shell to a newer version. If you use something else than bash, tcsh or zsh, subshell support is disabled automatically.

Another reason is problems with gpm. Try using "--nomouse" option to see if it makes any difference. Restarting gpm can help. Sometimes it's enough to move the mouse.

Also, if you have the DISPLAY environment variable set, but the X server is unreachable (e.g. it's firewalled), this can also cause a delay at startup. Unset DISPLAY to see if that's the case.

10 Development

10.1 Who has written Midnight Commander?

Midnight Commander was started by Miguel de Icaza. Other authors have joined the project

later:

  • Mauricio Plaza (early releases)
  • Janne Kukonlehto (joined Sep 27 1994)
  • Radek Doulik (joined Oct 30 1994)
  • Fred Leeflang (joined Nov 2 1994)
  • Dugan Porter (joined Dec 1 1994)
  • Jakub Jelinek (joined Feb 8 1995)
  • Ching Hui (joined Jun 27 1995)
  • Andrej Borsenkow (joined Jul 1996)
  • Paul Sheer (joined Nov 1 1996)
  • Norbert Warmuth
  • Alex I. Tkachenko

Alessandro Rubini has been specially helpful with debugging and enhancing of the mouse support. John E. Davis has made his S-Lang library available to us and answered many questions about it.

Current list of active developers can be found here: McDevelopers

This page lists everbody who has provided a patch or has written code for the midnight-commander in the past: McContributors

10.2 Do I dare to use a development version?

Yes, of course. Feel free to test: http://www.midnight-commander.org/wiki#Download As we do our development in git, please do a git checkout of the master branch and build it

But always remember: development versions may have nasty bugs at some points of time. It's up to you to judge whether the new features and fixes for the bugs you know outweigh the risk of unknown bugs.

10.3 How can I report a bug/request for a feature?

You might first want to get the newest development version to see if the bug is fixed or the feature is added already.

If this is not the case, feel free to add a ticket in our ticket-system, which is located here: http://www.midnight-commander.org/NewTicket

If you want to send an email instead write your report to mc-devel@… or mc@….

These mailing lists are the most certain way to contact the developers. Remember to mention if you are not on the mailing list to make sure that you will receive a copy of replies.

Give as much details as possible. A too long message is a lot better than a too short message.

For segmentation faults a stack backtrace is appreciated. You can produce stack backtrace as follows:

  • If segmentation fault produced a core file:
    1. Load the core file by typing "gdb mc core" or "dbx mc core".
    2. Type "where".
    3. Cut and paste the results to your message.
  • If segmentation fault didn't produce a core file:
    1. Load mc by typing "gdb mc" or "dbx mc".
    2. Start mc by typing "run".
    3. Try to reproduce the segmentation fault by doing whatever you did last time when the segmentation fault occurred.
    4. Type "where".
    5. Cut and paste the results to your message.
    6. For the future you might want to check out what is the command in your shell to allow producing of the core files. Usually it is "limit coredumpsize unlimited" or "ulimit coredumpsize" or "ulimit -c unlimited".

10.4 How can I join the development?

To join the development just code the feature you want to add and send your patch for inclusion. Email address is mc-devel@…. Before you start coding check the latest development version. It might be that your feature has already been implemented.

Note that the authors of GNU Midnight Commander have given all their rights on the program to the Free Software Foundation. You will have to do the same if you contribute non-trivial patches. Otherwise we have to reject your patches in order to avoid copyright problems.

11 More information

11.1 This document didn't answer my question. Where else can I look for an answer?

Read messages from the Discussion (mailing list archive), visit our Documentation project or read the Manual.

Upgrade to a newer version of Midnight Commander. Many problems are fixed in the new versions.

If you still can't find an answer, post your question to the Midnight Commander mailing list. Its address is mc@….

11.2 What mailing lists are there for Midnight Commander?

Following mailing lists discuss about Midnight Commander:

mc@…
General discussion of GNU Midnight Commander. To subscribe visit http://mail.gnome.org/mailman/listinfo/mc/
mc-devel@…
Technical development discussion. To subscribe visit http://mail.gnome.org/mailman/listinfo/mc-devel/
mc-commits@…
Mailing list only for applyed commits into master/stable branches. To subscribe visit http://groups.google.com/group/mc-commits/subscribe
mc-bugs@…
Mailing list only for tickets and comments (use it as RSS :) ). To subscribe visit http://groups.google.com/group/mc-bugs/subscribe

11.3 Where should I look on the World Wide Web for MC stuff?

There is a WWW page for Midnight Commander. The URL is: http://www.midnight-commander.org/

11.4 Are the mailing lists archived anywhere?

The mc and mc-devel lists are archived on the World Wide Web. There are links to the archives on the mailing list pages (see 10.2).

12 Legal issues

12.1 Authorship

Questions and Answers was written by Janne Kukonlehto. Parts of it originate from Ian Jackson, Miguel de Icaza, Dugan Porter, Norbert Warmuth and Paul Sheer.

12.2 Feedback is invited

Send your comments about this document and GNU Midnight Commander to mc@…

12.3 Disclaimer and copyright

Note that this document is provided as is. The information in it is not warranted to be correct; you use it at your own risk.

You can use Questions and Answers according to GNU General Public License (see the COPYING file in GNU Midnight Commander source distribution). Questions and Answers is not public domain.