Files
linux_config_nano/nanorc
mattiaborsarini 4712546103 nanorc: Customize key bindings
* Reorder key bindings as they are shown in the manual
* Add more custom bindings
* Remove conflicting bindings (duplicates and those that conflict with WM/DE shortcuts)
* Unbind keys for functions I don't use
* Some bindings are commented out because they don't work (e.g. special keys)
* Remove duplicate "set multibuffer" (probably a leftover)
2021-05-02 13:29:39 +02:00

478 lines
13 KiB
Plaintext

## This is a system-wide configuration file for the nano editor.
##
## Each user can save his own configuration to ~/.nanorc
##
## See the nanorc(5) man page for details.
## Sample initialization file for GNU nano.
##
## For the options that take parameters, the default value is shown.
## Other options are unset by default. To make sure that an option
## is disabled, you can use "unset <option>".
##
## Characters that are special in a shell should not be escaped here.
## Inside string parameters, quotes should not be escaped -- the last
## double quote on the line will be seen as the closing quote.
## Make 'nextword' (Ctrl+Right) and 'chopwordright' (Ctrl+Delete)
## stop at word ends instead of at beginnings.
# set afterends
## When soft line wrapping is enabled, make it wrap lines at blanks
## (tabs and spaces) instead of always at the edge of the screen.
set atblanks
## Automatically indent a newly created line to the same number of
## tabs and/or spaces as the preceding line -- or as the next line
## if the preceding line is the beginning of a paragraph.
set autoindent
## Back up files to the current filename plus a tilde.
# set backup
## The directory to put unique backup files in.
# set backupdir ""
## Use bold text instead of reverse video text.
# set boldtext
## Treat any line with leading whitespace as the beginning of a paragraph.
# set bookstyle
## The characters treated as closing brackets when justifying paragraphs.
## This may not include any blank characters. Only closing punctuation,
## optionally followed by these closing brackets, can end sentences.
# set brackets ""')>]}"
## Automatically hard-wrap the current line when it becomes overlong.
# set breaklonglines
## Do case-sensitive searches by default.
# set casesensitive
## Constantly display the cursor position in the status bar. Note that
## this overrides "quickblank".
# set constantshow
## Use cut-from-cursor-to-end-of-line by default.
# set cutfromcursor
## Do not use the line below the title bar, leaving it entirely blank.
# set emptyline
## Set the target width for automatic hard-wrapping and for justifying
## paragraphs. If the specified value is 0 or less, the wrapping point
## will be the terminal's width minus this number.
# set fill -8
## Remember the used search/replace strings for the next session.
# set historylog
## Display a "scrollbar" on the righthand side of the edit window.
set indicator
## Scroll the buffer contents per half-screen instead of per line.
# set jumpyscrolling
## Display line numbers to the left (and any anchors in the margin).
set linenumbers
## Enable vim-style lock-files. This is just to let a vim user know you
## are editing a file [s]he is trying to edit and vice versa. There are
## no plans to implement vim-style undo state in these files.
# set locking
## Fall back to slow libmagic to try and determine an applicable syntax.
# set magic
## The opening and closing brackets that can be found by bracket
## searches. They cannot contain blank characters. The former set must
## come before the latter set, and both must be in the same order.
# set matchbrackets "(<[{)>]}"
## Enable mouse support, if available for your system. When enabled,
## mouse clicks can be used to place the cursor, set the mark (with a
## double click), and execute shortcuts. The mouse will work in the X
## Window System, and on the console when gpm is running.
# set mouse
## Switch on multiple file buffers (inserting a file will put it into
## a separate buffer).
# set multibuffer
## Don't convert files from DOS/Mac format.
# set noconvert
## Don't display the helpful shortcut lists at the bottom of the screen.
# set nohelp
## Don't automatically add a newline when a file does not end with one.
set nonewlines
## Set operating directory. nano will not read or write files outside
## this directory and its subdirectories. Also, the current directory
## is changed to here, so any files are inserted from this dir. A blank
## string means the operating-directory feature is turned off.
# set operatingdir ""
## Remember the cursor position in each file for the next editing session.
# set positionlog
## Preserve the XON and XOFF keys (^Q and ^S).
# set preserve
## The characters treated as closing punctuation when justifying
## paragraphs. They cannot contain blank characters. Only closing
## punctuation, optionally followed by closing brackets, can end
## sentences.
# set punct "!.?"
## Do quick status-bar blanking. Status-bar messages will disappear after
## 1 keystroke instead of 26. Note that "constantshow" overrides this.
set quickblank
## The regular expression that matches quoting characters in email
## or line-comment introducers in source code. The default is:
# set quotestr "^([ ]*([!#%:;>|}]|//))+"
## Try to work around a mismatching terminfo terminal description.
# set rawsequences
## Fix Backspace/Delete confusion problem.
# set rebinddelete
## Do regular-expression searches by default.
## Regular expressions are of the extended type (ERE).
# set regexp
## Save a changed buffer automatically on exit; don't prompt.
# set saveonexit
## (The old form of this option, 'set tempfile', is deprecated.)
## Put the cursor on the highlighted item in the file browser, and show
## the cursor in the help viewer; useful for people who use a braille
## display and people with poor vision.
# set showcursor
## Make the Home key smarter. When Home is pressed anywhere but at the
## very beginning of non-whitespace characters on a line, the cursor
## will jump to that beginning (either forwards or backwards). If the
## cursor is already at that position, it will jump to the true
## beginning of the line.
# set smarthome
## Spread overlong lines over multiple screen lines.
set softwrap
## Use this spelling checker instead of the internal one. This option
## does not have a default value.
set speller "hunspell"
## Use the end of the title bar for some state flags: I = auto-indenting,
## M = mark, L = hard-wrapping long lines, R = recording, S = soft-wrapping.
# set stateflags
## Allow nano to be suspended (with ^Z by default).
# set suspendable
## (The old form of this option, 'set suspend', is deprecated.)
## Use this tab size instead of the default; it must be greater than 0.
set tabsize 4
## Convert typed tabs to spaces.
# set tabstospaces
## Snip whitespace at the end of lines when justifying or hard-wrapping.
# set trimblanks
## Disallow file modification. Why would you want this in an rcfile? ;)
# set view
## The two single-column characters used to display the first characters
## of tabs and spaces. 187 in ISO 8859-1 (0000BB in Unicode) and 183 in
## ISO-8859-1 (0000B7 in Unicode) seem to be good values for these.
## The default when in a UTF-8 locale:
# set whitespace "»·"
## The default otherwise:
# set whitespace ">."
## Detect word boundaries differently by treating punctuation
## characters as parts of words.
# set wordbounds
## The characters (besides alphanumeric ones) that should be considered
## as parts of words. This option does not have a default value. When
## set, it overrides option 'set wordbounds'.
# set wordchars "<_>."
## Let an unmodified Backspace or Delete erase the marked region (instead
## of a single character, and without affecting the cutbuffer).
# set zap
## Paint the interface elements of nano. These are examples;
## by default there are no colors, except for errorcolor.
# set titlecolor bold,lightwhite,blue
# set statuscolor bold,lightwhite,green
# set errorcolor bold,lightwhite,red
# set selectedcolor lightwhite,magenta
# set stripecolor ,yellow
# set scrollercolor cyan
# set numbercolor cyan
# set keycolor cyan
# set functioncolor green
## In root's .nanorc you might want to use:
# set titlecolor bold,lightwhite,magenta
# set statuscolor bold,lightwhite,magenta
# set errorcolor bold,lightwhite,red
# set selectedcolor lightwhite,cyan
# set stripecolor ,yellow
# set scrollercolor magenta
# set numbercolor magenta
# set keycolor lightmagenta
# set functioncolor magenta
## === Syntax coloring ===
## For all details, see 'man nanorc', section SYNTAX HIGHLIGHTING.
## To include most of the existing syntax definitions, you can do:
include "/usr/share/nano/*.nanorc"
## Or you can select just the ones you need. For example:
# include "/usr/share/nano/html.nanorc"
# include "/usr/share/nano/python.nanorc"
# include "/usr/share/nano/sh.nanorc"
## In /usr/share/nano/extra/ you can find some syntaxes that are
## specific for certain distros or for some less common languages.
## If <Tab> should always produce four spaces when editing a Python file,
## independent of the settings of 'tabsize' and 'tabstospaces':
# extendsyntax python tabgives " "
## If <Tab> should always produce an actual TAB when editing a Makefile:
# extendsyntax makefile tabgives " "
## === Key bindings ===
## For all details, see 'man nanorc', section REBINDING KEYS.
## The <Ctrl+Delete> keystroke deletes the word to the right of the cursor.
## On some terminals the <Ctrl+Backspace> keystroke produces ^H, which is
## the ASCII character for backspace, so it is bound by default to the
## backspace function. The <Backspace> key itself produces a different
## keycode, which is hard-bound to the backspace function. So, if you
## normally use <Backspace> for backspacing and not ^H, you can make
## <Ctrl+Backspace> delete the word to the left of the cursor with:
bind ^H chopwordleft main
## The following custom key bindings are written in the order they appear
## in the manual.
## Not all functions have bindings, only the ones I use do.
# Special key bindings that mess with WM/DE
unbind ^Q all
unbind M-\ all
#unbind ^▲ all // doesn't work
#unbind ^▼ all // doesn't work
#unbind ^◀ all // doesn't work
# help
bind ^H help all
bind ^H exit help
unbind ^G all
# exit
bind ^W exit all
unbind F2 all
# writeout
bind Sh-M-S writeout main
unbind F3 main
# savefile
#bind ^S savefile main
# insert
bind ^O insert main
# whereis
bind ^F whereis all
unbind F6 all
# wherewas
bind ^B wherewas all
unbind ^Q all
# findprevious
bind Sh-M-F findprevious all
unbind M-Q all
# findnext
bind M-F findnext all
unbind M-W all
# replace
bind ^R replace main
unbind ^\ main
unbind M-R main
# cut
bind ^X cut all
unbind ^K all
unbind F9 all
# copy
bind ^C copy main
unbind M-6 main
unbind M-^ main
# paste
bind ^V paste all
unbind ^U all
unbind F10 all
# chopwordleft
# previously set binding
#unbind Sh-^Del all // doesn't work
# cutrestoffile
bind M-T cutrestoffile all
# mark
#bind ^A mark main
#unbind ^6 main // doesn't work
# location
bind M-P location main
unbind F11 main
# wordcount
bind M-W wordcount main
unbind M-D main
# speller
bind M-S speller all
unbind F12 main
unbind ^S execute
unbind ^T execute
# formatter
bind M-M formatter all
unbind ^O execute
# linter
bind M-L linter all
unbind M-B main
unbind ^Y execute
# justify
bind M-J justify main
unbind ^J main
unbind F4 main
# fulljustify
bind Sh-M-J fulljustify all
unbind ^J execute
# indent
unbind M-} main
# unindent
unbind M-{ main
# comment
bind M-C comment main
unbind M-3 main
# complete
bind M-Space complete main
unbind ^] main
# left
unbind ^B all
# up
unbind ^P all
# down
unbind ^N all
# scrollup
unbind M-- main
unbind M-_ main
# scrolldown
unbind M-+ main
unbind M-= main
# nextworld
unbind ^Space all
# home
unbind ^A all
# end
unbind ^E all
# beginpara
unbind M-( main
unbind M-9 main
# endpara
unbind M-) main
unbind M-0 main
# prevblock
#unbind ^▲ main // doesn't work
unbind M-7 main
# nextblock
#unbind ^▼ main // doesn't work
unbind M-8 main
unbind ^O gotoline
# pageup
unbind ^Y help
unbind ^Y browser
unbind F7 all
# pagedown
unbind F8 all
# firstline
unbind ^Y gotoline
# lastline
unbind M-/ all
# findbracket
unbind M-] main
# gotoline
#bind ^T gotoline main
unbind ^_ main
# prevbuf
unbind M-< main
unbind M-, main
# nextbuf
unbind M-> main
unbind M-. main
# verbatim
#bind M-Ins verbatim all // doesn't work
# delete
unbind ^D all
# backspace
#unbind Sh-Del all // doesn't work
# recordmacro
unbind M-: main
# runmacro
unbind M-; main
# undo
bind ^Z undo main
unbind M-U main
# redo
bind ^Y redo main
unbind M-E main
# refresh
bind F5 refresh all
unbind ^L all
# flipgoto
unbind ^T search
unbind ^T gotoline
# flipexecute
bind M-E flipexecute insert
# flippipe
bind M-P flippipe execute
unbind M-\ all
# flipnewbuffer
bind M-N flipnewbuffer all
# flipconvert
bind M-C flipconvert insert
# browser
bind M-F browser writeout
bind M-F browser insert
unbind ^T writeout
unbind ^T insert
# gotodir
bind M-D gotodir browser
unbind ^_ browser
unbind M-G browser
# firstfile
#bind Home firstfile browser // doesn't work
unbind ^Y whereisfile
# lastfile
#bind End lastfile browser // doesn't work
# nohelp
bind M-? nohelp all
# nosyntaxt
unbind M-Y main
# cutfromcursor
#bind Sh-M-Del cutfromcursor main // doesn't work
unbind M-K main
# nowrap
bind M-H nowrap main
# tabstospaces
unbind M-O main
# mouse
bind Sh-M-M mouse main
# suspendable
unbind M-Z main
unbind ^Z execute