neulab/tldr huggingface dataset:
-fno-jump-tables Do not use jump tables for switch statements even where it would be more efficient than other code generation strategies.  This option is of use in conjunction with -fpic or -fPIC for building code which forms part of a dynamic linker and cannot reference the address of a jump table.  On some targets, jump tables do not require a GOT and this option is not needed.
-fcall-used-reg Treat the register named reg as an allocable register that is clobbered by function calls.  It may be allocated for temporaries or variables that do not live across a call.  Functions compiled this way will not save and restore the register reg.
It is an error to used this flag with the frame pointer or stack pointer.  Use of this flag for other registers that have fixed pervasive roles in the machine's execution model will produce disastrous results.
-fcall-saved-reg Treat the register named reg as an allocable register saved by functions.  It may be allocated even for temporaries or variables that live across a call.  Functions compiled this way will save and restore the register reg if they use it.
A different sort of disaster will result from the use of this flag for a register in which function values may be returned.
-fpack-struct[=n] Without a value specified, pack all structure members together without holes.  When a value is specified (which must be a small power of two), pack structure members according to this value, representing the maximum alignment (that is, objects with default alignment requirements larger than this will be output potentially unaligned at the next fitting location.
-finstrument-functions Generate instrumentation calls for entry and exit to functions.  Just after function entry and just before function exit, the following profiling functions will be called with the address of the current function and its call site.  (On some platforms, "__builtin_return_address" does not work beyond the current function, so the call site information may not be available to the profiling functions otherwise.)
This instrumentation is also done for functions expanded inline in other functions.  The profiling calls will indicate where, conceptually, the inline function is entered and exited.  This means that addressable versions of such functions must be available.  If all your uses of a function are expanded inline, this may mean an additional expansion of code size.  If you use extern inline in your C code, an addressable version of such functions must be provided. (This is normally the case anyways, but if you get lucky and the optimizer always expands the functions inline, you might have gotten away without providing static copies.)
A function may be given the attribute "no_instrument_function", in which case this instrumentation will not be done.  This can be used, for example, for the profiling functions listed above, high-priority interrupt routines, and any functions from which the profiling functions cannot safely be called (perhaps signal handlers, if the profiling routines generate output or allocate memory).
-fstack-check Generate code to verify that you do not go beyond the boundary of the stack.  You should specify this flag if you are running in an environment with multiple threads, but only rarely need to specify it in a single-threaded environment since stack overflow is automatically detected on nearly all systems if there is only one stack.
Note that this switch does not actually cause checking to be done; the operating system must do that.  The switch causes generation of code to ensure that the operating system sees the stack being extended.
-fstack-limit-register=reg -fstack-limit-symbol=sym -fno-stack-limit Generate code to ensure that the stack does not grow beyond a certain value, either the value of a register or the address of a symbol.  If the stack would grow beyond the value, a signal is raised.  For most targets, the signal is raised before the stack overruns the boundary, so it is possible to catch the signal without taking special precautions.
-fargument-alias -fargument-noalias -fargument-noalias-global -fargument-noalias-anything Specify the possible relationships among parameters and between parameters and global data.
-fargument-alias specifies that arguments (parameters) may alias each other and may alias global storage.-fargument-noalias specifies that arguments do not alias each other, but may alias global storage.-fargument-noalias-global specifies that arguments do not alias each other and do not alias global storage. -fargument-noalias-anything specifies that arguments do not alias any other storage.
Each language will automatically use whatever option is required by the language standard.  You should not need to use these options yourself.
-ftls-model=model Alter the thread-local storage model to be used.  The model argument should be one of "global-dynamic", "local-dynamic", "initial-exec" or "local-exec".
The default without -fpic is "initial-exec"; with -fpic the default is "global-dynamic".
-fvisibility=default|internal|hidden|protected Set the default ELF image symbol visibility to the specified option---all symbols will be marked with this unless overridden within the code.  Using this feature can very substantially improve linking and load times of shared object libraries, produce more optimized code, provide near-perfect API export and prevent symbol clashes.  It is strongly recommended that you use this in any shared objects you distribute.
Despite the nomenclature, "default" always means public ie; available to be linked against from outside the shared object.  "protected" and "internal" are pretty useless in real-world usage so the only other commonly used option will be "hidden".  The default if -fvisibility isn't specified is "default", i.e., make every symbol public---this causes the same behavior as previous versions of GCC.
A good explanation of the benefits offered by ensuring ELF symbols have the correct visibility is given by "How To Write Shared Libraries" by Ulrich Drepper (which can be found at <http://people.redhat.com/~drepper/>)---however a superior solution made possible by this option to marking things hidden when the default is public is to make the default hidden and mark things public.  This is the norm with DLL's on Windows and with -fvisibility=hidden and "__attribute__ ((visibility("default")))" instead of "__declspec(dllexport)" you get almost identical semantics with identical syntax.  This is a great boon to those working with cross-platform projects.
For those adding visibility support to existing code, you may find #pragma GCC visibility of use.  This works by you enclosing the declarations you wish to set visibility for with (for example) #pragma GCC visibility push(hidden) and #pragma GCC visibility pop. Bear in mind that symbol visibility should be viewed as part of the API interface contract and thus all new code should always specify visibility when it is not the default ie; declarations only for use within the local DSO should always be marked explicitly as hidden as so to avoid PLT indirection overheads---making this abundantly clear also aids readability and self-documentation of the code.  Note that due to ISO C++ specification requirements, operator new and operator delete must always be of default visibility.
Be aware that headers from outside your project, in particular system headers and headers from any other library you use, may not be expecting to be compiled with visibility other than the default.  You may need to explicitly say #pragma GCC visibility push(default) before including any such headers.
extern declarations are not affected by -fvisibility, so a lot of code can be recompiled with -fvisibility=hidden with no modifications.  However, this means that calls to extern functions with no explicit visibility will use the PLT, so it is more effective to use __attribute ((visibility)) and/or #pragma GCC visibility to tell the compiler which extern declarations should be treated as hidden.
Note that -fvisibility does affect C++ vague linkage entities. This means that, for instance, an exception class that will be thrown between DSOs must be explicitly marked with default visibility so that the type_info nodes will be unified between the DSOs.
LANG LC_CTYPE LC_MESSAGES LC_ALL These environment variables control the way that GCC uses localization information that allow GCC to work with different national conventions.  GCC inspects the locale categories LC_CTYPE and LC_MESSAGES if it has been configured to do so.  These locale categories can be set to any value supported by your installation.  A typical value is en_GB.UTF-8 for English in the United Kingdom encoded in UTF-8.
The LC_CTYPE environment variable specifies character classification. GCC uses it to determine the character boundaries in a string; this is needed for some multibyte encodings that contain quote and escape characters that would otherwise be interpreted as a string end or escape.
If GCC_EXEC_PREFIX is not set, GCC will attempt to figure out an appropriate prefix to use based on the pathname it was invoked with.
The default value of GCC_EXEC_PREFIX is prefix/lib/gcc/ where prefix is the value of "prefix" when you ran the configure script.
In addition, the prefix is used in an unusual way in finding the directories to search for header files.  For each of the standard directories whose name normally begins with /usr/local/lib/gcc (more precisely, with the value of GCC_INCLUDE_DIR), GCC tries replacing that beginning with the specified prefix to produce an alternate directory name.  Thus, with -Bfoo/, GCC will search foo/bar where it would normally search /usr/local/lib/bar.  These alternate directories are searched first; the standard directories come next.
COMPILER_PATH The value of COMPILER_PATH is a colon-separated list of directories, much like PATH.  GCC tries the directories thus specified when searching for subprograms, if it can't find the subprograms using GCC_EXEC_PREFIX.
LIBRARY_PATH The value of LIBRARY_PATH is a colon-separated list of directories, much like PATH.  When configured as a native compiler, GCC tries the directories thus specified when searching for special linker files, if it can't find them using GCC_EXEC_PREFIX.  Linking using GCC also uses these directories when searching for ordinary libraries for the -l option (but directories specified with -L come first).
If LANG is not defined, or if it has some other value, then the compiler will use mblen and mbtowc as defined by the default locale to recognize and translate multibyte characters.
MACOSX_DEPLOYMENT_TARGET IPHONEOS_DEPLOYMENT_TARGET These variables are used to set the target OS version, as described for command-line options -mmacosx-version-min and -miphoneos-version-min.  Only one OS version can be specified per architecture, with MACOSX_DEPLOYMENT_TARGET taking precedence on non- ARM targets and IPHONEOS_DEPLOYMENT_TARGET taking precedence on ARM targets.
If either command-line option -mmacosx-version-min or -miphoneos-version-min is specified, both of these environment variables are ignored.
Some additional environments variables affect the behavior of the preprocessor.
To report bugs to Apple, see <http://developer.apple.com/bugreporter>.
gpl(7), gfdl(7), fsf-funding(7), cpp(1), gcov(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1) and the Info entries for gcc, cpp, as, ld, binutils and gdb.
Copyright (c) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being "GNU General Public License" and "Funding Free Software", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below).  A copy of the license is included in the gfdl(7) man page.
QUOTA(1)                     General Commands Manual                    QUOTA(1)
quota - display disk usage and limits
quota [ -F format-name ] [ -guqvswi ] [ -l | [ -QAm ]] quota [ -F format-name ] [ -qvswi ] [ -l | [ -QAm ]] -u user... quota [ -F format-name ] [ -qvswi ] [ -l | [ -QAm ]] -g group... quota [ -F format-name ] [ -qvswi ] [ -l | [ -QAm ]] -P project... quota [ -F format-name ] [ -qvswugQm ] -f filesystem...
quota displays users' disk usage and limits.  By default only the user quotas are printed. By default space usage and limits are shown in kbytes (and are named blocks for historical reasons).
quota reports the quotas of all the filesystems listed in /etc/mtab.  For filesystems that are NFS-mounted a call to the rpc.rquotad on the server machine is performed to get the information.
-F, --format=format-name Show quota for specified format (ie. don't perform format autodetection).  Possible format names are: vfsold Original quota format with 16-bit UIDs / GIDs, vfsv0 Quota format with 32-bit UIDs / GIDs, 64-bit space usage, 32-bit inode usage and limits, vfsv1 Quota format with 64-bit quota limits and usage, rpc (quota over NFS), xfs (quota on XFS filesystem)
-g, --group Print group quotas for the group of which the user is a member. The optional group argument(s) restricts the display to the specified group(s).
-u, --user flag is equivalent to the default.
-P, --project Print project quotas for the specified project.
-v, --verbose will display quotas on filesystems where no storage is allocated.
-s, --human-readable[=units] option will make quota(1) try to choose units for showing limits, used space and used inodes. Units can be also specified explicitely by an optional argument in format [ kgt ],[ kgt ] where the first character specifies space units and the second character specifies inode units.
-p, --raw-grace When user is in grace period, report time in seconds since epoch when his grace time runs out (or has run out). Field is '0' when no grace time is in effect.  This is especially useful when parsing output by a script.
-i, --no-autofs ignore mountpoints mounted by automounter
-l, --local-only report quotas only on local filesystems (ie. ignore NFS mounted filesystems).
-A, --all-nfs report quotas for all NFS filesystems even if they report to be on the same device.
-f, --filesystem-list report quotas only for filesystems specified on command line.
--filesystem=path report quotas only for filesystem path.  This option can be specified multiple types and quota will be reported for each specified filesystem. Unlike command line option -f remaining command like arguments are still treated as user / group / project names to report.
-m, --no-mixed-pathnames Currently, pathnames of NFSv4 mountpoints are sent without leading slash in the path.  rpc.rquotad uses this to recognize NFSv4 mounts and properly prepend pseudoroot of NFS filesystem to the path. If you specify this option, quota will always send paths with a leading slash. This can be useful for legacy reasons but be aware that quota over RPC will stop working if you are using new rpc.rquotad.
-q, --quiet Print a more terse message, containing only information on filesystems where usage is over quota.
-Q, --quiet-refuse Do not print error message if connection to rpc.rquotad is refused (usually this happens when rpc.rquotad is not running on the server).
-w, --no-wrap Do not wrap the line if the device name is too long. This can be useful when parsing the output of quota(1) by a script.
--show-mntpoint Show also mount point as a filesystem identification.
--hide-device Do not show device name in a filesystem identification.
Specifying both -g and -u displays both the user quotas and the group quotas (for the user).
Only the super-user may use the -u flag and the optional user argument to view the limits of other users. Also viewing of project quota usage and limits is limited to super-user only.  Non-super-users can use the -g flag and optional group argument to view only the limits of groups of which they are members.
The -q flag takes precedence over the -v flag.
If quota exits with a non-zero status, one or more filesystems are over quota.
aquota.user  or  aquota.group quota file at the filesystem root (version 2 quota, non-XFS filesystems) quota.user  or  quota.group quota file at the filesystem root (version 1 quota, non-XFS filesystems) /etc/mtab           default filesystems
quotactl(2), fstab(5), edquota(8), quotacheck(8), quotaon(8), quota_nld(8), repquota(8), warnquota(8), setquota(8)
PHPLOC(1)                         User Commands                        PHPLOC(1)
phploc - PHPLOC command line interface
phploc [options] [--] [<values>]...
Arguments: values
--names=NAMES A comma-separated list of file names to check [default: ["*.php"]]
--names-exclude=NAMES-EXCLUDE A comma-separated list of file names to exclude
--count-tests Count PHPUnit test case classes and test methods
--exclude=EXCLUDE Exclude a directory from code analysis (multiple values allowed)
--log-csv=LOG-CSV Write result in CSV format to file
--log-xml=LOG-XML Write result in XML format to file
GIT-IGNORE-IO(1)                   Git Extras                   GIT-IGNORE-IO(1)
git-ignore-io - Get sample gitignore file
git ignore-io [<OPTIONS>]
Get sample gitignore file from gitignore.io https://www.gitignore.io
<OPTIONS>
-a, --append <types>... Append new .gitignore content to .gitignore under the current directory
-r, --replace <types>... Export new .gitignore to the current directory (The old one will be replaced)
-l, --list-in-table Print available types in table format
-L, --list-alphabetically Print available types in alphabetical order
-s, --search <word> Search word in available types
-t, --show-update-time Show the last modified time of ~/.gi_list (where the list of available types is stored)
-u, --update-list Update ~/.gi_list
Show sample gitignore file for vim
$ git ignore-io vim
# Created by https://www.gitignore.io/api/vim
### Vim ### [._]*.s[a-w][a-z] [._]s[a-w][a-z] *.un~ Session.vim .netrwhist *~
Append sample gitignore for vim and python to .gitignore in current directory.
$ git ignore-io -a vim python
Show all available types
$ git ignore-io -l
actionscript             ada                      agda                     android                  anjuta appceleratortitanium     appcode                  appengine                archives                 archlinuxpackages autotools                basercms                 bazel                    bluej                    bower bricxcc                  c                        c++                      cakephp                  carthage ......
Search ja in all available types
$ git ignore-io -s ja
django jabref java ninja
Written by Lee-W cl87654321@gmail.com
LVS(8)                       System Manager's Manual                      LVS(8)
lvs â€” Display information about logical volumes
lvs [ option_args ] [ position_args ]
lvs produces formatted output about LVs.
lvs [ -H|--history ] [ -a|--all ] [ -o|--options String ] [ -S|--select String ] [ -O|--sort String ] [    --segments ] [    --aligned ] [    --binary ] [    --configreport log|vg|lv|pv|pvseg|seg ] [    --foreign ] [    --ignorelockingfailure ] [    --logonly ] [    --nameprefixes ] [    --noheadings ] [    --nosuffix ] [    --readonly ] [    --reportformat basic|json ] [    --rows ] [    --separator String ] [    --shared ] [    --unbuffered ] [    --units [Number]r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|E ] [    --unquoted ] [ COMMON_OPTIONS ] [ VG|LV|Tag ... ]
-a|--all Show information about internal LVs.  These are components of normal LVs, such as mirrors, which are not independently accessible, e.g. not mountable.
-H|--history Include historical LVs in the output.  (This has no effect unless LVs were removed while lvm.conf(5) metadata/record_lvs_history was enabled.
--segments Use default columns that emphasize segment information.
LV     Logical Volume name.  See lvm(8) for valid names.  An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
The lv_attr bits are:
1  Volume type: (C)ache, (m)irrored, (M)irrored without initial sync, (o)rigin, (O)rigin with merging snapshot, (r)aid, (R)aid without initial sync, (s)napshot, merging (S)napshot, (p)vmove, (v)irtual, mirror or raid (i)mage, mirror or raid (I)mage out-of-sync, mirror (l)og device, under (c)onversion, thin (V)olume, (t)hin pool, (T)hin pool data, v(d)o pool, v(D)o pool data, raid or pool m(e)tadata or pool metadata spare.
2  Permissions: (w)riteable, (r)ead-only, (R)ead-only activation of non- read-only volume
3  Allocation policy:  (a)nywhere, (c)ontiguous, (i)nherited, c(l)ing, (n)ormal This is capitalised if the volume is currently locked against allocation changes, for example during pvmove(8).
4  fixed (m)inor
5  State: (a)ctive, (h)istorical, (s)uspended, (I)nvalid snapshot, invalid (S)uspended snapshot, snapshot (m)erge failed, suspended snapshot (M)erge failed, mapped (d)evice present without tables, mapped device present with (i)nactive table, thin-pool (c)heck needed, suspended thin-pool (C)heck needed, (X) unknown
6  device (o)pen, (X) unknown
7  Target type: (C)ache, (m)irror, (r)aid, (s)napshot, (t)hin, (u)nknown, (v)irtual.  This groups logical volumes related to the same kernel target together.  So, for example, mirror images, mirror logs as well as mirrors themselves appear as (m) if they use the original device- mapper mirror kernel driver; whereas the raid equivalents using the md raid kernel driver all appear as (r).  Snapshots using the original device-mapper driver appear as (s); whereas snapshots of thin volumes using the new thin provisioning driver appear as (t).
8  Newly-allocated data blocks are overwritten with blocks of (z)eroes before use.
9  Volume Health, where there are currently three groups of attributes identified:
Common ones for all Logical Volumes: (p)artial, (X) unknown. (p)artial signifies that one or more of the Physical Volumes this Logical Volume uses is missing from the system. (X) unknown signifies the status is unknown.
Related to RAID Logical Volumes: (r)efresh needed, (m)ismatches exist, (w)ritemostly. (r)efresh signifies that one or more of the Physical Volumes this RAID Logical Volume uses had suffered a write error. The write error could be due to a temporary failure of that Physical Volume or an indication that it is failing.  The device should be refreshed or replaced. (m)ismatches signifies that the RAID logical volume has portions of the array that are not coherent.  Inconsistencies are detected by initiating a "check" on a RAID logical volume.  (The scrubbing operations, "check" and "repair", can be performed on a RAID logical volume via the 'lvchange' command.)  (w)ritemostly signifies the devices in a RAID 1 logical volume that have been marked write-mostly. Re(s)haping signifies a RAID Logical Volume is either undergoing a stripe addition/removal, a stripe size or RAID algorithm change. (R)emove after reshape signifies freed striped raid images to be removed.
Related to Thin pool Logical Volumes: (F)ailed, out of (D)ata space, (M)etadata read only. (F)ailed is set if thin pool encounters serious failures and hence no further I/O is permitted at all. The out of (D)ata space is set if thin pool has run out of data space. (M)etadata read only signifies that thin pool encounters certain types of failures but it's still possible to do reads at least, but no metadata changes are allowed.
Related to Thin Logical Volumes: (F)ailed. (F)ailed is set when related thin pool enters Failed state and no further I/O is permitted at all.
Related to writecache logical volumes: (E)rror. (E)rror is set dm-writecache reports an error.
10 s(k)ip activation: this volume is flagged to be skipped during activation.
MC(1)                        GNU Midnight Commander                        MC(1)
mc - Visual shell for Unix-like systems.
mc [-abcCdfhPstuUVx] [-l log] [dir1 [dir2]] [-e [file] ...] [-v file]
GNU Midnight Commander is a directory browser/file manager for Unix-like operating systems.
-a, --stickchars Disable usage of graphic characters for line drawing.
-b, --nocolor Force black and white display.
-c, --color Force color mode, please check the section Colors for more information.
-C arg, --colors=arg Specify a different color set in the command line.  The format of arg is documented in the Colors section.
--configure-options Display configure options.
-d, --nomouse Disable mouse support.
-D N, --debuglevel=N Save the debug level for SMB VFS. N is in 0-10 range.
-e [file], --edit[=file] Start the internal editor.  If the file is specified, open it on startup.  See also mcedit (1).
-f, --datadir Display the compiled-in search paths for Midnight Commander files.
-F, --datadir-info Display extended info about compiled-in paths for Midnight Commander.
-g, --oldmouse Force a "normal tracking" mouse mode. Used when running on xterm-capable terminals (tmux/screen).
-k, --resetsoft Reset softkeys to their default from the termcap/terminfo database. Only useful on HP terminals when the function keys don't work.
-K file, --keymap=file Specify a name of keymap file in the command line.
-l file, --ftplog=file Save the ftpfs dialog with the server in file.
--nokeymap Don't load key bindings from any file, use default hardcoded keys.
-P file, --printwd=file Print the last working directory to the specified file.  This option is not meant to be used directly.  Instead, it's used from a special shell script that automatically changes the current directory of the shell to the last directory Midnight Commander was in. Source the file /usr/lib/mc/mc.sh (bash and zsh users) or /usr/lib/mc.csh (tcsh users) respectively to define mc as an alias to the appropriate shell script.
-s, --slow Turn on the slow terminal mode, in this mode the program will not draw expensive line drawing characters and will toggle verbose mode off.
-S arg, --skin=arg Specify a name of skin in the command line. Technology of skins is documented in the Skins section.
-t, --termcap Used only if the code was compiled with S-Lang and terminfo: it makes Midnight Commander use the value of the TERMCAP variable for the terminal information instead of the information on the system wide terminal database
-u, --nosubshell Disable use of the concurrent shell (only makes sense if Midnight Commander has been built with concurrent shell support).
-U, --subshell Enable use of the concurrent shell support (only makes sense if the Midnight Commander was built with the subshell support set as an optional feature).
-v file, --view=file Start the internal viewer to view the specified file.  See also mcview (1).
-V, --version Display the version of the program.
-x, --xterm Force xterm mode.  Used when running on xterm-capable terminals (two screen modes, and able to send mouse escape sequences).
-X, --no-x11 Do not use X11 to get the state of modifiers Alt, Ctrl, Shift
If both paths are specified, the first path name is the directory to show in the active panel; the second path name is the directory to be shown in the other panel.
If one path is specified, the path name is the directory to show in the active panel; value of "other_dir" from panels.ini is the directory to be shown in the passive panel.
If no paths are specified, current directory is shown in the active panel; value of "other_dir" from panels.ini is the directory to be shown in the passive panel.
Overview The screen of Midnight Commander is divided into four parts.  Almost all of the screen space is taken up by two directory panels.  By default, the second line from the bottom of the screen is the shell command line, and the bottom line shows the function key labels.  The topmost line is the menu bar line.  The menu bar line may not be visible, but appears if you click the topmost line with the mouse or press the F9 key.
Midnight Commander provides a view of two directories at the same time. One of the panels is the current panel (a selection bar is in the current panel). Almost all operations take place on the current panel. Some file operations like Rename and Copy by default use the directory of the unselected panel as a destination (don't worry, they always ask you for confirmation first). For more information, see the sections on the Directory Panels, the Left and Right Menus and the File Menu.
You can execute system commands from Midnight Commander by simply typing them. Everything you type will appear on the shell command line, and when you press Enter, Midnight Commander will execute the command line you typed; read the Shell Command Line and Input Line Keys sections to learn more about the command line.
Mouse Support Midnight Commander comes with mouse support. It is activated whenever you are running on an xterm(1) terminal (it even works if you take a telnet, ssh or rlogin connection to another machine from the xterm) or if you are running on a Linux console and have the gpm mouse server running.
When you left click on a file in the directory panels, that file is selected; if you click with the right button, the file is marked (or unmarked, depending on the previous state).
Double-clicking on a file will try to execute the command if it is an executable program; and if the extension file has a program specified for the file's extension, the specified program is executed.
Also, it is possible to execute the commands assigned to the function key labels by clicking on them.
The default auto repeat rate for the mouse buttons is 400 milliseconds. This may be changed to other values by editing the ~/.config/mc/ini file and changing the mouse_repeat_rate parameter.
If you are running Midnight Commander with the mouse support, you can get the default mouse behavior (cutting and pasting text) by holding down the Shift key.
Keys Some commands in Midnight Commander involve the use of the Control (sometimes labeled CTRL or CTL) and the Meta (sometimes labeled ALT or even Compose) keys. In this manual we will use the following abbreviations:
C-<chr> means hold the Control key while typing the character <chr>.  Thus C-f would be: hold the Control key and type f.
Alt-<chr> means hold the Meta or Alt key down while typing <chr>.  If there is no Meta or Alt key, type Esc, release it, then type the character <chr>.
S-<chr> means hold the Shift key down while typing <chr>.
All input lines in Midnight Commander use an approximation to the GNU Emacs editor's key bindings (default).
You may redefine key bindings. See redefine hotkey bindings
for more info. All other key bindings (described in this manual) are relative to default behavior.
There are many sections which tell about the keys. The following are the most important.
The File Menu section documents the keyboard shortcuts for the commands appearing in the File menu. This section includes the function keys. Most of these commands perform some action, usually on the selected file or the tagged files.
The Directory Panels section documents the keys which select a file or tag files as a target for a later action (the action is usually one from the file menu).
The Shell Command Line section list the keys which are used for entering and editing command lines. Most of these copy file names and such from the directory panels to the command line (to avoid excessive typing) or access the command line history.
Input Line Keys are used for editing input lines. This means both the command line and the input lines in the query dialogs.
Redefine hotkey bindings Hotkey bindings may be read from external file (keymap-file).  Initially, Midnight Commander creates key bindings using keymap defined in the source code. Then, two files /usr/share/mc/mc.keymap and /etc/mc/mc.keymap are loaded always, sequentially reassigned key bindings defined earlier.  User-defined keymap-file is searched on the following algorithm (to the first one found):
1) command line option -K <keymap> or --keymap=<keymap> 2) Environment variable MC_KEYMAP 3) Parameter keymap in section [Midnight-Commander] of config file. 4) File ~/.config/mc/mc.keymap
Command line option, environment variable and parameter in config file may contain the absolute path to the keymap-file (with the extension .keymap or without it). Search of keymap-file will occur in (to the first one found):
1) ~/.config/mc 2) /etc/mc/ 3) /usr/share/mc/
Miscellaneous Keys Here are some keys which don't fall into any of the other categories:
Enter  if there is some text in the command line (the one at the bottom of the panels), then that command is executed. If there is no text in the command line then if the selection bar is over a directory the Midnight Commander does a chdir(2) to the selected directory and reloads the information on the panel; if the selection is an executable file then it is executed. Finally, if the extension of the selected file name matches one of the extensions in the extensions file then the corresponding command is executed.
C-l    repaint all the information in Midnight Commander.
C-x c  run the Chmod command on a file or on the tagged files.
C-x o  run the Chown command on the current file or on the tagged files.
C-x l  run the hard link command.
C-x s  run the absolute symbolic link command.
C-x v  run the relative symbolic link command. See the File Menu section for more information about symbolic links.
C-x i  set the other panel display mode to information.
C-x q  set the other panel display mode to quick view.
C-x !  execute the External panelize command.
C-x h  run the add directory to hotlist command.
Alt-!  executes the Filtered view command, described in the view command.
Alt-?  executes the Find file command.
Alt-c  pops up the quick cd dialog.
C-o    when the program is being run in the Linux or FreeBSD console or under an xterm, it will show you the output of the previous command.  When ran on the Linux console, Midnight Commander uses an external program (cons.saver) to handle saving and restoring of information on the screen.
When the subshell support is compiled in, you can type C-o at any time and you will be taken back to Midnight Commander's main screen, to return to your application just type C-o.  If you have an application suspended by using this trick, you won't be able to execute other programs from Midnight Commander until you terminate the suspended application.
Directory Panels This section lists the keys which operate on the directory panels. If you want to know how to change the appearance of the panels take a look at the section on Left and Right Menus.
Tab, C-i change the current panel. The old other panel becomes the new current panel and the old current panel becomes the new other panel. The selection bar moves from the old current panel to the new current panel.
Insert, C-t to tag files you may use the Insert key (the kich1 terminfo sequence).  To untag files, just retag a tagged file.
Alt-e  to change charset of panel you may use Alt-e (M-e).  Recoding is made from selected codepage into system codepage. To cancel the recoding, select "No translation" in the dialog of encodings.
Alt-g, Alt-r, Alt-j used to select the top file in a panel, the middle file and the bottom one, respectively.
Alt-t  toggle the current display listing to show the next display listing format.  With this it is possible to quickly switch to brief listing, long listing, user defined listing format, and back to the default.
C-\ (control-backslash) show the directory hotlist and change to the selected directory.
+  (plus) this is used to select (tag) a group of files. Midnight Commander will prompt for a selection options. When Files only checkbox is on, only files will be selected.  If Files only is off, as files as directories will be selected.  When Shell Patterns checkbox is on, the regular expression is much like the filename globbing in the shell (* standing for zero or more characters and ? standing for one character). If Shell Patterns is off, then the tagging of files is done with normal regular expressions (see ed (1)). When Case sensitive checkbox is on, the selection will be case sensitive characters.  If Case sensitive is off, the case will be ignored.
\ (backslash) use the "\" key to unselect a group of files. This is the opposite of the Plus key.
up-key, C-p move the selection bar to the previous entry in the panel.
down-key, C-n move the selection bar to the next entry in the panel.
home, a1, Alt-< move the selection bar to the first entry in the panel.
end, c1, Alt-> move the selection bar to the last entry in the panel.
next-page, C-v move the selection bar one page down.
prev-page, Alt-v move the selection bar one page up.
Alt-o  If the currently selected file is a directory, load that directory on the other panel and moves the selection to the next file. If the currently selected file is not a directory, load the parent directory on the other panel and moves the selection to the next file.
Alt-i  make the current directory of the current panel also the current directory of the other panel.  Put the other panel to the listing mode if needed.  If the current panel is panelized, the other panel doesn't become panelized.
C-PageUp, C-PageDown only when supported by the terminal: change to ".." and to the currently selected directory respectively.
Alt-y  moves to the previous directory in the history, equivalent to clicking the < with the mouse.
Alt-u  moves to the next directory in the history, equivalent to clicking the > with the mouse.
Alt-S-h, Alt-H displays the directory history, equivalent to depressing the 'v' with the mouse.
Quick search The Quick search mode allows you to perform fast file search in file panel.  Press C-s or Alt-s to start a filename search in the directory listing.
When the search is active, the user input will be added to the search string instead of the command line. If the Show mini-status option is enabled the search string is shown on the mini-status line. When typing, the selection bar will move to the next file starting with the typed letters. The Backspace or DEL keys can be used to correct typing mistakes. If C-s is pressed again, the next match is searched for.
If quick search is started with double pressing of C-s, the previous quick search pattern will be used for current search.
Besides the filename characters, you can also use wildcard characters '*' and '?'.
Shell Command Line This section lists keys which are useful to avoid excessive typing when entering shell commands.
Alt-Enter copy the currently selected file name to the command line.
C-Enter same a Alt-Enter.  May not work on remote systems and some terminals.
C-S-Enter copy the full path name of the currently selected file to the command line.  May not work on remote systems and some terminals.
Alt-Tab does the filename, command, variable, username and hostname completion for you.
C-x t, C-x C-t copy the tagged files (or if there are no tagged files, the selected file) of the current panel (C-x t) or of the other panel (C-x C-t) to the command line.
C-x p, C-x C-p the first key sequence copies the current path name to the command line, and the second one copies the unselected panel's path name to the command line.
C-q    the quote command can be used to insert characters that are otherwise interpreted by Midnight Commander (like the '+' symbol)
Alt-p, Alt-n use these keys to browse through the command history. Alt-p takes you to the last entry, Alt-n takes you to the next one.
Alt-h  displays the history for the current input line.
General Movement Keys The help viewer, the file viewer and the directory tree use common code to handle moving. Therefore they accept exactly the same keys. Each of them also accepts some keys of its own.
Other parts of Midnight Commander use some of the same movement keys, so this section may be of use for those parts too.
Up, C-p moves one line backward.
Down, C-n moves one line forward.
Prev Page, Page Up, Alt-v moves one page up.
Next Page, Page Down, C-v moves one page down.
Home, A1 moves to the beginning.
End, C1 move to the end.
The help viewer and the file viewer accept the following keys in addition the to ones mentioned above:
b, C-b, C-h, Backspace, Delete moves one page up.
Space bar moves one page down.
u, d   moves one half of a page up or down.
g, G   moves to the beginning or to the end.
Input Line Keys The input lines (they are used for the command line and for the query dialogs in the program) accept these keys:
C-a    puts the cursor at the beginning of line.
C-e    puts the cursor at the end of the line.
C-b, move-left move the cursor one position left.
C-f, move-right move the cursor one position right.
Alt-f  moves one word forward.
Alt-b  moves one word backward.
C-h, Backspace delete the previous character.
C-d, Delete delete the character in the point (over the cursor).
C-@    sets the mark for cutting.
C-w    copies the text between the cursor and the mark to a kill buffer and removes the text from the input line.
Alt-w  copies the text between the cursor and the mark to a kill buffer.
C-y    yanks back the contents of the kill buffer.
C-k    kills the text from the cursor to the end of the line.
Alt-p, Alt-n Use these keys to browse through the command history. Alt-p takes you to the last entry, Alt-n takes you to the next one.
Alt-C-h, Alt-Backspace delete one word backward.
Menu Bar The menu bar pops up when you press F9 or click the mouse on the top row of the screen. The menu bar has five menus: "Left", "File", "Command", "Options" and "Right".
The Left and Right Menus allow you to modify the appearance of the left and right directory panels.
The File Menu lists the actions you can perform on the currently selected file or the tagged files.
The Command Menu lists the actions which are more general and bear no relation to the currently selected file or the tagged files.
The Options Menu lists the actions which allow you to customize Midnight Commander.
Left and Right (Above and Below) Menus The outlook of the directory panels can be changed from the Left and Right menus (they are named Above and Below when the horizontal panel split is chosen from the Layout options dialog).
Listing Format... The listing mode view is used to display a listing of files, there are four different listing formats available: Full, Brief, Long and User. The full directory view shows the file name, the size of the file and the modification time.
The brief view shows only the file name and it has from 1 up to 9 columns (therefore showing more files unlike other views). The long view is similar to the output of ls -l command. The long view takes the whole screen width.
If you choose the "User" display format, then you have to specify the display format.
The user display format must start with a panel size specifier.  This may be "half" or "full", and they specify a half screen panel and a full screen panel respectively.
After the panel size, you may specify how many listings to fit in the panel, side-by-side (in other words: how many times to repeat the fields horizontally). This defaults to 1. You may change this by adding a number from 1 to 9 to the format string.
After this you add the name of the fields with an optional size specifier.  This are the available fields you may display:
name   displays the file name.
size   displays the file size.
bsize  is an alternative form of the size format. It displays the size of the files and for directories it just shows SUB-DIR or UP--DIR.
type   displays a one character wide type field.  This character is similar to what is displayed by ls with the -F flag - * for executable files, / for directories, @ for links, = for sockets, - for character devices, + for block devices, | for pipes, ~ for symbolic links to directories and !  for stale symlinks (links that point nowhere).
mark   an asterisk if the file is tagged, a space if it's not.
mtime  file's last modification time.
atime  file's last access time.
ctime  file's status change time.
perm   a string representing the current permission bits of the file.
mode   an octal value with the current permission bits of the file.
nlink  the number of links to the file.
ngid   the GID (numeric).
nuid   the UID (numeric).
owner  the owner of the file.
group  the group of the file.
inode  the inode of the file.
Also you can use following keywords to define the panel layout:
space  a space in the display format.
|      add a vertical line to the display format.
To force one field to a fixed size (a size specifier), you just add : followed by the number of characters you want the field to have.  If the number is followed by the symbol +, then the size specifies the minimal field size - if the program finds out that there is more space on the screen, it will then expand that field.
For example, the Full display corresponds to this format:
half type name | size | mtime
And the Long display corresponds to this format:
full perm space nlink space owner space group space size space mtime space name
This is a nice user display format:
half name | size:7 | type mode:3
Panels may also be set to the following modes:
Info   The info view display information related to the currently selected file and if possible information about the current file system.
Tree   The tree view is quite similar to the directory tree feature. See the section about it for more information.
Quick View In this mode, the panel will switch to a reduced viewer that displays the contents of the currently selected file, if you select the panel (with the tab key or the mouse), you will have access to the usual viewer commands.
Sort Order... The eight sort orders are by name, by extension, by modification time, by access time, and by inode information modification time, by size, by inode and unsorted.  In the Sort order dialog box you can choose the sort order and you may also specify if you want to sort in reverse order by checking the reverse box.
By default directories are sorted before files but this can be changed from the Panel options menu (option Mix all files).
Filter... The filter command allows you to specify a shell pattern (for example *.tar.gz) which the files must match to be shown. Regardless of the filter pattern, the directories and the links to directories are always shown in the directory panel.
Reread The reread command reload the list of files in the directory. It is useful if other processes have created or removed files.
File Menu Midnight Commander uses the F1 - F10 keys as keyboard shortcuts for commands appearing in the file menu.  The escape sequences for the function keys are terminfo capabilities kf1 trough kf10.  On terminals without function key support, you can achieve the same functionality by pressing the Esc key and then a number in the range 1 through 9 and 0 (corresponding to F1 to F9 and F10 respectively).
The File menu has the following commands (keyboard shortcuts in parentheses):
Help (F1)
Invokes the built-in hypertext help viewer. Inside the help viewer, you can use the Tab key to select the next link and the Enter key to follow that link. The keys Space and Backspace are used to move forward and backward in a help page. Press F1 again to get the full list of accepted keys.
Menu (F2)
Invoke the user menu.  The user menu provides an easy way to provide users with a menu and add extra features to Midnight Commander.
View (F3, F13)
View the currently selected file. By default this invokes the Internal File Viewer but if the option "Use internal view" is off, it invokes an external file viewer specified by the VIEWER environment variable.  If VIEWER is undefined, the PAGER environment variable is tried.  If PAGER is also undefined, the "view" command is invoked.  If you use F13 instead, the viewer will be invoked without doing any formatting or preprocessing to the file.
See parameters for external viewer for explain how you may specify an extended command line options for external viewers.
Filtered View (Alt-!)
This command prompts for a command and its arguments (the argument defaults to the currently selected file name), the output from such command is shown in the internal file viewer.
Edit (F4, F14)
Press F4 to edit the highlighted file.  Press F14 (usually F14) to start the editor with a new, empty file.  Currently they invoke the vi editor, or the editor specified in the EDITOR environment variable, or the Internal File Editor if the use_internal_edit option is on.
See parameters for external editor for explain how you may specify an extended command line options for external editors.
Copy (F5, F15)