## Sample initialization file for GNU nano
## Please note that you must have configured nano with --enable-nanorc
## for this file to be read!  Also note that characters specially
## interpreted by the shell should not be escaped here.
##
## To make sure a value is not enabled, use "unset <option>"
##
## For the options that take parameters, the default value is given.
## Other options are unset by default.

## Use auto-indentation.
# set autoindent

## Backup files to filename~.
# set backup

## The directory to put unique backup files in.
# set backupdir ""

## Do backwards searches by default.
# set backwards

## The characters treated as closing brackets.  They cannot contain
## blank characters.  Only closing punctuation, optionally followed by
## closing brackets, can end sentences.
##
# set brackets "'")}]>"

## Do case sensitive searches by default.
# set casesensitive

## Constantly display the cursor position in the statusbar.  Note that
## this cancels out "quickblank".
set const

## Use cut to end of line by default.
#set cut

## Set the line length for wrapping text and justifying paragraphs.
## If fill is 0 or less, the line length will be the screen width less
## this number.
##
set fill -1

## Enable ~/.nano_history for saving and reading search/replace strings.
set historylog

## Use the blank line below the titlebar as extra editing space.
set morespace

## Enable mouse support, so that mouse clicks can be used to set the
## mark and run shortcuts.
# set mouse

## Allow multiple file buffers (inserting a file will put it into a
## separate buffer).  You must have configured with --enable-multibuffer
## for this to work.
##
set multibuffer

## Don't convert files from DOS/Mac format.
set noconvert

## Don't follow symlinks when writing files.
# set nofollow

## Don't display the helpful shortcut lists at the bottom of the screen.
# set nohelp

## Don't wrap text at all.
# set nowrap

## 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 files are inserted from this dir.  A blank
## string means the operating directory feature is turned off.
##
#set operatingdir ""

## Preserve the XON and XOFF keys (^Q and ^S).
# set preserve

## The characters treated as closing punctuation.  They cannot contain
## blank characters.  Only closing punctuation, optionally followed by
## closing brackets, can end sentences.
##
# set punct ".?!"

## Do quick statusbar blanking.  Statusbar messages will disappear after
## 1 keystroke instead of 25.  Note that "const" cancels this out.
##
# set quickblank

## The email-quote string, used to justify email-quoted paragraphs.
## This is an extended regular expression if your system supports them,
## otherwise a literal string.  Default:
# set quotestr "^([ 	]*[\|>:}#])+"
## if you have regexps, otherwise:
#set quotestr "> "
## You can get old nano quoted-justify behavior via:
# set quotestr "(> )+"

## Fix Backspace/Delete confusion problem.
# set rebinddelete

## Do extended regular expression searches by default.
# set regexp

## 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

## Use smooth scrolling as the default.
set smooth

## Use this spelling checker instead of the internal one.  This option
## does not properly have a default value.
##
# set speller "aspell -x -c"

## Allow nano to be suspended.
# set suspend

## Use this tab size instead of the default; it must be greater than 0.
set tabsize 3

## Convert typed tabs to spaces.
# set tabstospaces

## Save automatically on exit, don't prompt.
# set tempfile

## 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 decimal (00BB hexadecimal) and 183 decimal
## (00B7 hexadecimal) seem to be good values for these.
# set whitespace "  "

## Color setup
##
## Format:
##
## syntax "short description" ["filename regex" ...]
##
## color foreground,background "regex" ["regex"...]
## or
## icolor foreground,background "regex" ["regex"...]
##
## "color" will do case sensitive matches, while "icolor" will do case
## insensitive matches.
##
## Legal colors: white, black, red, blue, green, yellow, magenta, cyan.
## You may use the prefix "bright" to mean a stronger color highlight
## for the foreground.
##
## To use multi-line regexes, use the start="regex" end="regex" format.
##
## If your system supports transparency, not specifying a background
## color will use a transparent color.  If you don't want this, be sure
## to set the background color to black or white.
##
syntax "c-file" "\.(c|C|cc|cpp|cxx|h|H|hh|hpp|hxx)$"
color white ".*"
color red "\<[A-Z_]{2,}\>" 
color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|signed|unsigned|inline)\>"
color green "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>"
color brightyellow "\<(for|if|while|do|else|case|default|switch|goto|continue|break|return)\>"
color brightyellow "\<(try|throw|catch|operator|new|delete)\>"
color brightcyan "^[[:space:]]*#[[:space:]]*(define|undef|include|ifn?def|endif|elif|else|if|warning|error)"
color brightmagenta "'([^\]|(\\['abfnrtv\\]))'" "'\\(([0-7][0-7]?)|([0-3][0-7][0-7]))'" "'\\x[0-9A-Fa-f][0-9A-Fa-f]?'"
##
## GCC builtins
##
color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(asm|builtin|inline|restrict|typeof)__"
##
## You will in general want your comments and strings to come last,
## because syntax highlighting rules will be applied in the order they
## are read in.
##
color brightyellow "<[^= 	]*>" ""(\\.|[^\"])*""
##
## This string is VERY resource intensive!!!
# color brightyellow start=""(\\.|[^\"])*\\[[:space:]]*$" end="^(\\.|[^\"])*""
##
## And we want to have some nice comment highlighting too
color brightblue "//.*"
color brightblue start="/\*" end="\*/"

## Here is a short example for HTML
syntax "HTML" "\.html$"
color white ".*"
color blue start="<" end=">"
color red "&[^;[[:space:]]]*;"

## Here is a short example for TeX files
syntax "TeX" "\.tex$"
color white ".*"
color green "\\.|\\[A-Za-z]*"
color magenta "[{}]"
color blue "%.*"

## Here is an example for quoted emails (under e.g. mutt)
syntax "etpan" ".*etpan.*"
color white ".*"
color green "^>.*"
color brightblue "^-- $"


## Here is an example for groff
##
syntax "groff" "\.m[ems]$" "\.tmac$" "^tmac." ".rof"
color white ".*"
## The argument of .nr or .ds
color cyan "^\.ds [^[[:space:]]]*"
color cyan "^\.nr [^[[:space:]]]*"
## Single character escapes
color brightmagenta "\\."
## Highlight the argument of \f or \s in the same color
color brightmagenta "\\f."
color brightmagenta "\\f\(.."
color brightmagenta "\\s(\+|\-)?[0-9]"
## \n
color cyan "(\\|\\\\)n."
color cyan "(\\|\\\\)n\(.."
color cyan start="(\\|\\\\)n\[" end="]"
## Requests
color brightgreen "^\.[[:space:]]*[^[[:space:]]]*"
## Comments
color yellow "^\.\\\".*$"
## Strings
color green "(\\|\\\\)\*."
color green "(\\|\\\\)\*\(.."
color green start="(\\|\\\\)\*\[" end="]"
## Characters
color brightred "\\\(.."
color brightred start="\\\[" end="]"
## Macro arguments
color brightcyan "\\\\\$[1-9]"

## Here is an example for perl
##
syntax "perl" "\.p[lm]$"
color white ".*"
color red "\<(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork))\>" "\<(get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join)\>" "\<(keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek(dir)?)\>" "\<(se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr(y)?|truncate|umask)\>" "\<(un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\>"
color magenta "\<(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\>"
color cyan start="[$@%]" end="( |\\W|-)"
color yellow "".*"|qq\|.*\|"
color white "[sm]/.*/"
color white start="(^use| = new)" end=";"
color green "#.*"
color yellow start="<< 'STOP'" end="STOP"

## Here is an example for Java source
##
syntax "Java source" "\.java$"
color white ".*"
color green "\<(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\>"
color red "\<(break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\>"
color cyan "\<(abstract|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile)\>"
color red ""[^\"]*""
color yellow "\<(true|false|null)\>"
color blue "//.*"
color blue start="/\*" end="\*/"
color brightblue start="/\*\*" end="\*/"
color brightgreen,green "[[:space:]]+$"

## Here is an example for patch files
##
syntax "patch" "\.(patch|diff)$"
color white ".*"
color brightgreen "^\+.*"
color green "^\+\+\+.*"
color brightblue "^ .*"
color brightred "^-.*"
color red "^---.*"
color brightyellow "^@@.*"
color magenta "^diff.*"

## Here is an example for manpages
##
syntax "manpage" "\.[1-9]x?$"
color white ".*"
color green "\.(S|T)H.*$"
color brightgreen "\.(S|T)H" "\.TP"
color brightred "\.(BR?|I[PR]?).*$"
color brightblue "\.(BR?|I[PR]?|PP)"
color brightwhite "\\f[BIPR]"
color yellow "\.(br|DS|RS|RE|PD)"

## Here is an example for assembler
##
syntax "asm-file" "\.(S|s|asm)$"
color white ".*"
color red "\<[A-Z_]{2,}\>"
color brightgreen "\.(data|subsection|text)"
color green "\.(align|file|globl|global|hidden|section|size|type|weak)"
color brightyellow "\.(ascii|asciz|byte|double|float|hword|int|long|short|single|struct|word)"
icolor brightred "^[[:space:]]*[._A-Z0-9]*:"
color brightcyan "^[[:space:]]*#[[:space:]]*(define|undef|include|ifn?def|endif|elif|else|if|warning|error)"
## Highlight strings (note: VERY resource intensive)
#color brightyellow "<[^= 	]*>" ""(\\.|[^\"])*""
#color brightyellow start=""(\\.|[^\"])*\\[[:space:]]*$" end="^(\\.|[^\"])*""
## Highlight comments
color brightblue "//.*"
color brightblue start="/\*" end="\*/"

## Here is an example for Bourne shell scripts
##
syntax "shellscript" "(FUNCTIONS|DETAILS|HISTORY|DEPENDS|BUILD|INSTALL|DOWNLOAD|POST_BUILD|POST_INSTALL|PRE_BUILD|PRE_INSTALL|PRE_REMOVE|POST_REMOVE|FINAL|CONFIGURE|PREPARE|PRE_RESURECTION|POST_RESURECTION|SUB_DEPENDS|PRE_SUB_DEPENDS|PROVIDES|CONFLICTS|configs|volatiles|solo|libcompat|\.sh)$"
color white ".*"
color blue "(FUNCTIONS|DETAILS|HISTORY|DEPENDS|BUILD|INSTALL|DOWNLOAD|POST_BUILD|POST_INSTALL|PRE_BUILD|PRE_INSTALL|PRE_REMOVE|POST_REMOVE|FINAL|CONFIGURE|PREPARE|PRE_RESURECTION|POST_RESURECTION|SUB_DEPENDS|PRE_SUB_DEPENDS|PROVIDES|CONFLICTS|configs|volatiles|solo|libcompat|.*\.gpg|.*\.asc|.*\.sig|.*\.sign)"
icolor brightgreen "^[_A-Z0-9]+\(\)"
color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while|export)\>"
color brightred "\<(acquire_src|default_download|download_src|altruistic_sub_depends|depends|optional_depends|requires|sub_depends|force_depends||config_query|config_query_list|config_query_option|config_query_string|get_source_nums|list_add|list_find|list_remove|message||persistent_add|persistent_clear|persistent_load|persistent_remove|persistent_save|query|query_string|sedit|conflicts||installed_version|mk_source_dir|prepare_install|rm_source_dir|default_build|default_install|default_post_build||default_post_install|default_pre_build|default_pre_install|gather_docs|devoke_installwatch|invoke_installwatch|track_manual||get_spell_provider|is_depends_enabled|provider_ok|spell_exiled|spell_held|spell_installed|spell_ok|guess_compressor|uncompress||unpack|unpack_file|unpack_file_simple|handle_changed_config|install_config_file|on_cast|on_dispel|on_pre_cast|on_pre_dispel||create_account|create_group|get_group_name|get_gids_for_account|exists_account|get_uid_for_account|get_gid_for_group||get_primary_gid_for_account|exists_group|use_gcc|invoke_gcc|glibc_is_nptl|update_desktop_database|install_wmfiles|make_single||make_normal|install_shell|remove_shell|config_query_long_string|install_www_files|mozilla_remove_nspr_nss|get_kernel_version||invoke_uname_change|devoke_uname_change|get_running_kernel_config|get_sorcery_kernel_config|default_build_python||default_install_python|default_prepare|default_configure|default_pre_remove|default_post_remove|default_games_build|find_and_scam|disable_pic)\>"
color brightmagenta "(^|[[:space:]])[_A-Za-z0-9/.-]+="
color brightmagenta "(^|[[:space:]])SOURCE.*URL\[[0-9]\]="
color brightmagenta "(^|[[:space:]])LICENSE\[[0-9]\]="
color white "=.*"
color brightred "(md5|sha1|ripemd160|sha256|sha384|sha512)"
color brightmagenta "(WORKS_FOR_ME|UPSTREAM_HASH|UPSTREAM_KEY|ESTABLISHED_UPSTREAM_KEY|VERIFIED_UPSTREAM_HASH|VERIFIED_UPSTREAM_KEY|ID_CHECK_UPSTREAM_KEY)"
color brightyellow "<.*@.*>"
color brightred "(\;|`|\\|\$|!|=|&|\||\*|@|\"|:)"
color brightgreen "(http:.*|ftp:.*|https:.*)"
color brightcyan "(svn:.*|cvs:.*|svn_http:.*|svn_https:.*)"
color green "-(L|d|e|f|g|r|u|w|x)\>"
color brightyellow "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color brightyellow "(==|!=|<=|>=|&&|\|\||=~|\\$)"
#color blue "\<(cat|cd|chmod|chown|cp|echo|env|grep|install|let|ln|make|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
color green "^\. .*"
color brightgreen ""(\\.|[^\"])*"" "'(\\.|[^'])*'"
color brightred "\"?\$\{?[][_A-Za-z0-9/.-#]+\}?\"?"
color white "-[0-9][0-9]\ .*<"
color brightgreen "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]"
color brightgreen "(\{|\}|\(|\)|\]|\[|<|>)"
color brightyellow "\""
color brightblue "(^|[[:space:]][[:space:]])#.*$"

## Here is an example for your .nanorc
##
syntax "nanorc" "(\.|/|)nanorc$"
color white ".*"
## highlight possible errors and parameters
icolor brightwhite "^[[:space:]]*(set|unset|syntax|i?color).*$"
## set, unset and syntax
icolor cyan "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|backupdir|backwards|brackets|casesensitive|const|cut|fill|historylog|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nowrap|operatingdir|preserve|punct|quickblank|quotestr|rebinddelete)\>" "^[[:space:]]*(set|unset)[[:space:]]+(regexp|smarthome|smooth|speller|suspend|tabsize|tabstospaces|tempfile|view|whitespace)\>"
icolor green "^[[:space:]]*(set|unset|syntax)\>"
## colors
icolor yellow "^[[:space:]]*i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan)?(,(white|black|red|blue|green|yellow|magenta|cyan))?\>"
icolor magenta "^[[:space:]]*i?color\>" "\<(start|end)="
## strings
icolor white "\"(\\.|[^\"])*\""
## comments
icolor blue "^[[:space:]]*#.*$"
