# phpman > man > lesskey(1)

> **TLDR:** Customize keybindings for `less`.
>
- Compile key bindings from a source file:
  `lesskey {{path/to/lesskey_file}}`
- Compile key bindings and write to a specific output file:
  `lesskey {{-o|--output}} {{path/to/output}} {{path/to/lesskey_file}}`
- Display version:
  `lesskey {{-V|--version}}`

*Source: tldr-pages*

---

[LESSKEY(1)](https://www.chedong.com/phpMan.php/man/LESSKEY/1/markdown)                             General Commands Manual                            [LESSKEY(1)](https://www.chedong.com/phpMan.php/man/LESSKEY/1/markdown)



## NAME
       lesskey - specify key bindings for less

### SYNOPSIS (deprecated)
### lesskey [-o output] [--] [input]
### lesskey [--output=output] [--] [input]
### lesskey -V
### lesskey --version

## SCOPE
       This  document describes the format of the _lesskey_ source file, which is used by _less_ version
       582 and later.  In previous versions of _less_, a separate program called _lesskey_ was  used  to
       compile  the  _lesskey_ source file into a format understood by _less_.  This compilation step is
       no longer required and the _lesskey_ program is therefore deprecated although the  file  format
       remains supported by _less_ itself.

## FILE FORMAT
       The  input file consists of one or more _sections._  Each section starts with a line that iden‐
       tifies the type of section.  Possible sections are:

       #command
              Defines new command keys.

       #line-edit
              Defines new line-editing keys.

       #env   Defines environment variables.

       Blank lines and lines which start with a pound sign (#) are ignored, except for  the  special
       section header lines.

## COMMAND SECTION
       The command section begins with the line

       #command

       If  the command section is the first section in the file, this line may be omitted.  The com‐
       mand section consists of lines of the form:

            _string_ <whitespace> _action_ [extra-string] <newline>

       Whitespace is any sequence of one or more spaces and/or tabs.   The  _string_  is  the  command
       key(s)  which invoke the action.  The _string_ may be a single command key, or a sequence of up
       to 15 keys.  The _action_ is the name of the less action, from the list below.  The  characters
       in  the  _string_ may appear literally, or be prefixed by a caret to indicate a control key.  A
       backslash followed by one to three octal digits may be used to specify a character by its oc‐
       tal value.  A backslash followed by certain characters specifies input characters as follows:

       \b     BACKSPACE

       \e     ESCAPE

       \n     NEWLINE

       \r     RETURN

       \t     TAB

       \ku    UP ARROW

       \kd    DOWN ARROW

       \kr    RIGHT ARROW

       \kl    LEFT ARROW

       \kU    PAGE UP

       \kD    PAGE DOWN

       \kh    HOME

       \ke    END

       \kx    DELETE

       A  backslash  followed  by any other character indicates that character is to be taken liter‐
       ally.  Characters which must be preceded by backslash include caret, space, tab and the back‐
       slash itself.

       An action may be followed by an "extra" string.  When such a command is entered while running
       _less_, the action is performed, and then the extra string is parsed, just as if it were  typed
       in  to _less_.  This feature can be used in certain cases to extend the functionality of a com‐
       mand.  For example, see the "{" and ":t" commands in the example below.  The extra string has
       a  special  meaning  for the "quit" action: when _less_ quits, the first character of the extra
       string is used as its exit status.

## EXAMPLE
       The following input file describes the set of default command keys used by less:


            #command
            \r         forw-line
            \n         forw-line
            e          forw-line
            j          forw-line
            \kd        forw-line
            ^E         forw-line
            ^N         forw-line
            k          back-line
            y          back-line
            ^Y         back-line
            ^K         back-line
            ^P         back-line
            J          forw-line-force
            K          back-line-force
            Y          back-line-force
            d          forw-scroll
            ^D         forw-scroll
            u          back-scroll
            ^U         back-scroll
            \40        forw-screen
            f          forw-screen
            ^F         forw-screen
            ^V         forw-screen
            \kD        forw-screen
            b          back-screen
            ^B         back-screen
            \ev        back-screen
            \kU        back-screen
            z          forw-window
            w          back-window
            \e\40      forw-screen-force
            F          forw-forever
            \eF        forw-until-hilite
            R          repaint-flush
            r          repaint

            ^R         repaint
            ^L         repaint
            \eu        undo-hilite
            \eU        clear-search
            g          goto-line
            \kh        goto-line
            <          goto-line
            \e<        goto-line
            p          percent
            %          percent
            \e[        left-scroll
            \e]        right-scroll
            \e(        left-scroll
            \e)        right-scroll
            \kl        left-scroll
            \kr        right-scroll
            \e{        no-scroll
            \e}        end-scroll
            {          forw-bracket {}
            }          back-bracket {}
            (          forw-bracket ()
            )          back-bracket ()
            [          forw-bracket []
            ]          back-bracket []
            \e^F       forw-bracket
            \e^B       back-bracket
            G          goto-end
            \e>        goto-end
            >          goto-end
            \ke        goto-end
            \eG        goto-end-buffered
            =          status
            ^G         status
            :f         status
            /          forw-search
            ?          back-search
            \e/        forw-search *
            \e?        back-search *
            n          repeat-search
            \en        repeat-search-all
            N          reverse-search
            \eN        reverse-search-all
            &          filter
            m          set-mark
            M          set-mark-bottom
            \em        clear-mark
            '          goto-mark
            ^X^X       goto-mark
            E          examine
            :e         examine
            ^X^V       examine
            :n         next-file
            :p         prev-file
            t          next-tag
            T          prev-tag
            :x         index-file
            :d         remove-file
            -          toggle-option
            :t         toggle-option t
            s          toggle-option o
            _          display-option
            |          pipe
            v          visual
            !          shell
            +          firstcmd

            H          help
            h          help
            V          version
            0          digit
            1          digit
            2          digit
            3          digit
            4          digit
            5          digit
            6          digit
            7          digit
            8          digit
            9          digit
            q          quit
            Q          quit
            :q         quit
            :Q         quit
            ZZ         quit


## PRECEDENCE
       Commands specified by _lesskey_ take precedence over the default commands.  A  default  command
       key  may  be  disabled by including it in the input file with the action "invalid".  Alterna‐
       tively, a key may be defined to do nothing by using the  action  "noaction".   "noaction"  is
       similar  to "invalid", but _less_ will give an error beep for an "invalid" command, but not for
       a "noaction" command.  In addition, ALL default commands may be disabled by adding this  con‐
       trol line to the input file:

       #stop

       This  will  cause all default commands to be ignored.  The #stop line should be the last line
       in that section of the file.

       Be aware that #stop can be dangerous.  Since all default commands are disabled, you must pro‐
       vide sufficient commands before the #stop line to enable all necessary actions.  For example,
       failure to provide a "quit" command can lead to frustration.

## LINE EDITING SECTION
       The line-editing section begins with the line:

       #line-edit

       This section specifies new key bindings for the line editing commands, in a manner similar to
       the  way key bindings for ordinary commands are specified in the #command section.  The line-
       editing section consists of a list of keys and actions, one per line as in the example below.

## EXAMPLE
       The following input file describes the set of default line-editing keys used by less:


            #line-edit
            \t           forw-complete
            \17          back-complete
            \e\t         back-complete
            ^L           expand
            ^V           literal
            ^A           literal
            \el          right
            \kr          right
            \eh          left
            \kl          left
            \eb          word-left
            \e\kl        word-left
            \ew          word-right
            \e\kr        word-right

            \ei          insert
            \ex          delete
            \kx          delete
            \eX          word-delete
            \ekx         word-delete
            \e\b         word-backspace
            \e0          home
            \kh          home
            \e$          end
            \ke          end
            \ek          up
            \ku          up
            \ej          down
            ^G           abort


## LESS ENVIRONMENT VARIABLES
       The environment variable section begins with the line

       #env

       Following this line is a list of environment variable assignments.  Each line consists of  an
       environment variable name, an equals sign (=) and the value to be assigned to the environment
       variable.  White space before and after the equals sign is ignored.   Variables  assigned  in
       this  way are visible only to _less_.  If a variable is specified in the system environment and
       also in a lesskey file, the value in the lesskey file takes precedence.  Although the lesskey
       file  can be used to override variables set in the environment, the main purpose of assigning
       variables in the lesskey file is simply to have all _less_ configuration information stored  in
       one file.

## EXAMPLE
       The following input file sets the -i option whenever _less_ is run, and specifies the character
       set to be "latin1":

                 #env
                 LESS = -i
                 LESSCHARSET = latin1


## SEE ALSO
       [**less**(1)](https://www.chedong.com/phpMan.php/man/less/1/markdown)

## WARNINGS
       On MS-DOS and OS/2 systems, certain keys send a sequence of characters which start with a NUL
       character (0).  This NUL character should be represented as \340 in a lesskey file.

## COPYRIGHT
       Copyright (C) 1984-2021  Mark Nudelman

       less  is part of the GNU project and is free software.  You can redistribute it and/or modify
       it under the terms of either (1) the GNU General Public License  as  published  by  the  Free
       Software  Foundation;  or (2) the Less License.  See the file README in the less distribution
       for more details regarding redistribution.  You should have received a copy of the  GNU  Gen‐
       eral  Public  License along with the source for less; see the file COPYING.  If not, write to
       the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA  02111-1307,  USA.   You
       should also have received a copy of the Less License; see the file LICENSE.

       less  is  distributed  in  the hope that it will be useful, but WITHOUT ANY WARRANTY; without
       even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR  PURPOSE.   See  the
       GNU General Public License for more details.

## AUTHOR
       Mark Nudelman
       Report bugs at <https://github.com/gwsw/less/issues>.



                                      Version 590: 03 Jun 2021                            [LESSKEY(1)](https://www.chedong.com/phpMan.php/man/LESSKEY/1/markdown)
