Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index Discussion & Documentation Documentation, Tips & Tricks
  • Search

Enable nano syntax highlighting

Unofficial documentation for various parts of Gentoo Linux. Note: This is not a support forum.
Post Reply
Advanced search
64 posts
  • Previous
  • 1
  • 2
  • 3
  • Next
Author
Message
Snake007uk
Apprentice
Apprentice
User avatar
Posts: 198
Joined: Sun Jan 12, 2003 1:04 am
Location: London, UK

  • Quote

Post by Snake007uk » Fri Sep 10, 2004 5:14 pm

Is is possitble to have the colour functionality of VI in nano ? as in if you edit for example /etc/fstab and you make a mistake VI normally highlights the mistake, could this be done in nano ? also the colour highligting, could it be done in nano to the Same level as VI ?

Snake
Snake :)

Dual AMD MP 2800+, Asus A7M266-D, 1GB Ram, 18.1GB u160 HD, ATI Radeon 9600 Pro, Creative Audigy ZS, Intel SRCU31A, Linksys NIC, iiyama 18.1 4637bk lcd
Top
Xk2c
Apprentice
Apprentice
User avatar
Posts: 240
Joined: Sat Jul 17, 2004 3:10 am

  • Quote

Post by Xk2c » Sat Sep 11, 2004 1:24 pm

Just right now, no.

with Nano it is possible I guess, but there are no rules for
this right now.

If some devs would come in and write the regular
expression for this it would work.
For Vim there are hundreds or more devs who do this.

I´m just happy to have the comments hightlighted. :wink:
useful Xterm, Aterm and RXVT-Unicode features
Top
Snake007uk
Apprentice
Apprentice
User avatar
Posts: 198
Joined: Sun Jan 12, 2003 1:04 am
Location: London, UK

  • Quote

Post by Snake007uk » Sat Sep 11, 2004 2:33 pm

damn :(

Snake
Snake :)

Dual AMD MP 2800+, Asus A7M266-D, 1GB Ram, 18.1GB u160 HD, ATI Radeon 9600 Pro, Creative Audigy ZS, Intel SRCU31A, Linksys NIC, iiyama 18.1 4637bk lcd
Top
jonaswidarsson
Apprentice
Apprentice
User avatar
Posts: 273
Joined: Fri Jan 16, 2004 10:39 am
Location: Göteborg, Sweden

  • Quote

Post by jonaswidarsson » Wed Dec 29, 2004 4:24 pm

Take care not to write too resource intense regex definitions.
Here's my update to the PHP hi-lighter:

Code: Select all

# PHP
syntax "php" "\.php[2345s~]?$"
color brightblue "(.*)\("

#Changed this one to a character class instead of "=*|=*|<|>|!":
color blue "\$[a-zA-Z_0-9$]*|[=!<>]"

color green "(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|@|while)\s"
color green "[.,{}();]"

color red "('.*')|(\".*\")"

#Forces regex to stop matching at EOL. 
#Sometimes the dot . matches newline as well so this is more portable:
color brightyellow "(#.*|//.*)$"
color brightyellow start="/\*" end="\*/"

#not all php open tags are "long"
#I wanted to write (<\?(?!xml)(php)?|\?>) but the parser didn't support it.
color brightblue "(<\?(php)?|\?>)"

#unfortunately, this also makes the php tags themselves white. 
#But I'll live anyway
color white start="\?>" end="<\?(php)?"
Think about this:
It actually seems Nano tries to match every regex definition from up going down, since the added last line overrides any php-looking code outside php, ie some javascript. If it is like that, any partly matching pattern defined before the one we intend to match completely takes time from the CPU without giving any value back.
So do anything you can to trap mismatches early in any regex so that we don't waste CPU unnecessarily.
Well... I haven't looked deeply into it myself yet, but hey, "my parser" seems rather fast ATM so I won't bother. I just wanted to point this out if someone here is new to regex.

Want to get better at regex?
Write a design template engine with PHP for your homepage :wink:. That was my learning path. A very very useful way to learn...
Top
Snake007uk
Apprentice
Apprentice
User avatar
Posts: 198
Joined: Sun Jan 12, 2003 1:04 am
Location: London, UK

  • Quote

Post by Snake007uk » Wed Dec 29, 2004 5:47 pm

Hi can some one send me a nano colour file which covers most files please
@ snake007uk-at-hotmail.com

Cheers
Snake :)

Dual AMD MP 2800+, Asus A7M266-D, 1GB Ram, 18.1GB u160 HD, ATI Radeon 9600 Pro, Creative Audigy ZS, Intel SRCU31A, Linksys NIC, iiyama 18.1 4637bk lcd
Top
ravloony
n00b
n00b
User avatar
Posts: 54
Joined: Fri Feb 04, 2005 11:21 pm
Location: France
Contact:
Contact ravloony
Website

Pascal anyone?

  • Quote

Post by ravloony » Sat May 07, 2005 8:21 am

So does anyone have one that does freepascal? I use that at school and it would be nice. Nano is such a cool editor. :) The teachers try to make us use emacs, but to be honest it's not my favourite, and has wierd bugs. Also the PC's there have about 2M of RAM, so the lighter, the better...
Anyway, if someone has got a pascal-capable .nanorc file, could they please post it?
be cool.
Ravloony
No sig yet, sig ebuild up soon :-)
Top
paladin-zero
Guru
Guru
User avatar
Posts: 322
Joined: Wed May 19, 2004 4:13 pm

  • Quote

Post by paladin-zero » Wed Jun 22, 2005 5:10 pm

singular wrote:For python highlighting, here is the one I came up with.
I used the same sequence for strings that you have since it works better than the one I first used.

Code: Select all

syntax "python" "\.py$"
color brightblue "def [a-zA-Z_0-9]+"
color brightcyan "\<(and|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|map|not|or|pass|print|raise|return|try|while)\>"
color brightgreen "(["']).*?[^\\]\1"
color brightgreen start=""""" end="""""
color brightred "#.*$"
Note that there isn't supposed to be a line break after brightcyan. But I can't seem to prevent it from getting posted that way.
I have some trouble with triple-quoted strings, the regexp seems to be greedy and is highlighting everything between the first """ and last """ in the document. I'm using nano-1.3.7.
Top
Sourcecode
Guru
Guru
User avatar
Posts: 392
Joined: Mon Apr 25, 2005 10:38 am
Location: Germany, Kerpen in sew of Cologne
Contact:
Contact Sourcecode
Website

  • Quote

Post by Sourcecode » Sun Jul 17, 2005 1:33 pm

Mafteah wrote:Someone have entry for c/cpp/h etc. files?
Sure... this is Aktually from my Nano-1.3.7

Code: Select all

########################Syntax Highlighting for some Stuff########################

## This will Enable Syntax Highlighting vor C/C++ Sourcecode
## 
syntax "c-file" "\.(c|C|cc|cpp|h|H|hh|hpp)$"
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|printf|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 "^ *# *(define|undef|include|ifn?def|endif|elif|else|if)"
color brightmagenta "'([^\]|(\\['abfnrtv\\]))'" "'\\(([0-7][0-7]?)|([0-3][0-7][0-7]))'" "'\\x[0-9A-Fa-f][0-9A-Fa-f]?'"

## Syntax Highliting for HTML
syntax "HTML" "\.html$"
color blue start="<" end=">"
color red "&[^; ]*;"


# PHP Syntax Highlighting
syntax "php" "\.php[2345s~]?$"
color brightblue "(.*)\("
color blue "\$[a-zA-Z_0-9$]*|[=!<>]"
color green "(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|@|while)\s"
color green "[.,{}();]"
color red "('.*')|(".*")"
color brightyellow "(#.*|//.*)$"
color brightyellow start="/\*" end="\*/"
color brightblue "(<\?(php)?|\?>)"
color white start="\?>" end="<\?(php)?" 

## Mini Syntax Highliting for TeX files
syntax "TeX" "\.tex$"
color green "\\.|\\[A-Za-z]*"
color magenta "[{}]"
color blue "%.*"

## Syntax Highliting for mutt
syntax "mutt"
color green "^>.*"

## Here is an example for groff
##
syntax "groff" "\.ms$" "\.mm$" "\.me$" "\.tmac$" "^tmac." ".rof"
color cyan "^\.ds [^ ]*"
color cyan "^\.nr [^ ]*"
color brightmagenta "\\."
color brightmagenta "\\f."
color brightmagenta "\\f\(.."
color brightmagenta "\\s(\+|\-)?[0-9]"
color cyan "(\\|\\\\)n."
color cyan "(\\|\\\\)n\(.."
color cyan start="(\\|\\\\)n\[" end="]"
color brightgreen "^\. *[^ ]*"
color yellow "^\.\\".*$"
color green "(\\|\\\\)\*."
color green "(\\|\\\\)\*\(.."
color green start="(\\|\\\\)\*\[" end="]"
color brightred "\\\(.."
color brightred start="\\\[" end="]"
color brightcyan "\\\\\$[1-9]"

## Code Highlighting for perl source
##
syntax "perl" "\.p[lm]$"
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))\>"
color red "\<(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)\>"
color red "\<(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)?)\>"
color red "\<(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)\>"
color red "\<(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 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 " +$"

## Here is an example for patch files
##
syntax "patch" "\.(patch|diff)$"
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 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 your .nanorc
##
 syntax "nanorc" "(\.|/|)nanorc$"
 color brightwhite "^ *(set|unset|syntax|color).*$"
 color cyan "^ *(set|unset) +(autoindent|backup|backupdir|brackets|const|cut|fill|historylog|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nowrap|operatingdir|preserve|punct|quotestr|rebinddelete|regexp|smarthome|smooth|speller|suspend|tabsize|tempfile)\>"
 color cyan "^ *(set|unset) +(view|whitespace)"
 color green "^ *(set|unset|syntax)\>"
 color yellow "^ *color +(bright)?(white|black|red|blue|green|yellow|magenta|cyan)(,(white|black|red|blue|green|yellow|magenta|cyan))?\>"
 color magenta "^ *color\>" "\<(start|end)="
 color white ""(\\.|[^"])*""
 color blue "^ *#.*$"

## Here is an example for ebuilds/eclasses
##
syntax "ebuild" "\.e(build|class)$"
color brightgreen "^src_(unpack|compile|install|test)" "^pkg_(config|nofetch|setup|(pre|post)(inst|rm))"
color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>"
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color green "-(e|d|f|r|g|u|w|x|L)\>"
color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color brightred "\$\{?[a-zA-Z_0-9]+\}?"
color red "\<(ARCH|HOMEPAGE|DESCRIPTION|IUSE|SRC_URI|LICENSE|SLOT|KEYWORDS|FILESDIR|WORKDIR|(P|R)?DEPEND|PROVIDE|DISTDIR|RESTRICT|USERLAND)\>"
color red "\<(S|D|T|PV|PF|P|PN|A)\>" "\<C(XX)?FLAGS\>" "\<LDFLAGS\>" "\<C(HOST|TARGET|BUILD)\>"
color magenta "\<use(_(with|enable))?\> [!a-zA-Z0-9_+ -]*" "inherit.*"
color brightblue "e(begin|end|conf|install|make|warn|infon?|error|patch)"
color brightblue "\<die\>" "\<use(_(with|enable))?\>" "\<inherit\>" "\<has\>" "\<(has|best)_version\>" "\<unpack\>"
color brightblue "\<(do|new)(ins|s?bin|doc|lib(|\.so|\.a)|man|info|exe|initd|confd|envd|pam|menu|icon)\>"
color brightblue "\<do(python|sed|dir|hard|sym|html|jar|mo)\>" "\<keepdir\>"
color brightblue "prepall(|docs|info|man|strip)" "prep(info|lib|lib\.(so|a)|man|strip)"
color brightblue "\<(|doc|ins|exe)into\>" "\<f(owners|perms)\>" "\<(exe|ins|dir)opts\>"
color blue "\<make\>" "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|let|ln|mkdir|mv|rm|sed|set|tar|touch|unset)\>"
color yellow "#.*$"
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"

## Here is an example for shell scripts
##
syntax "shellscript" "\.sh$"
color brightgreen "^[a-zA-Z_0-9]+\(\)"
color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>"
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color green "-(e|d|f|r|g|u|w|x|L)\>"
color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color brightblue "\<make\>" "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
color brightred "\$\{?[a-zA-Z_0-9]+\}?"
color yellow "#.*$"
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
Es gibt bloss eins, was wichtig ist: dass man sterben muss.

Suicide is man's way of telling God, "You can't fire me - I quit."

no one gets out here alive....
Top
youngka
n00b
n00b
Posts: 50
Joined: Sun Sep 04, 2005 5:10 pm

  • Quote

Post by youngka » Sun Sep 04, 2005 5:17 pm

Someone pointed this thread out to me on the Ubuntu forums, and I thought I would drop by and add a couple syntax definitions I have written. I use a terminal with a black background.

Apache conf files:

Code: Select all

## Apache httpd.conf highlighting
##
#how to add sites-enabled files?  "default" is too generic to keep in here I think
syntax "Apache2" "apache2\.conf$" "httpd\.conf$" "default"
color brightwhite "(ServerRoot|(Lock|Pid)File|Timeout|(Max)?KeepAlive(Requests|Timeout)?)"
color brightwhite "(User|Group|LogFormat|ErrorLog|Include|(Script)?Alias)"
color brightwhite "(ErrorDocument|AccessFileName|UseCanonicalName|TypesConfig|DefaultType)"
color brightwhite "(HostnameLookups|IndexOptions|(Readme|Header)Name|LanguagePriority)"
color brightwhite "(AddIcon(ByEncoding|ByType)?|DefaultIcon|IndexIgnore|BrowserMatch)"
color brightwhite "(Add(Encoding|Language|(Default)?Charset|Type|Handler)|DirectoryIndex)"
color brightwhite "(DocumentRoot|Server(Admin|Signature)|LogLevel|CustomLog)"
color brightwhite "((Force)?LanguagePriority|NameVirtualHost)"
color yellow "(SetHandler|Order|Deny|Allow|SetOutputFilter)"
color yellow "(AllowOverride|FileInfo|AuthConfig|Limit)"
color yellow "([^A-Z0-9a-z]Options|Indexes|(\+|\-)?SymLinksIfOwnerMatch)"
color yellow "(Includes(NoExec)?|(\+|\-)?MultiViews)"
color yellow "(None|allow,deny|deny,allow|(allow)? from (all)?|Prefer|Fallback)"
color yellow "(Add(Handler|OutputFilter)|NumServers|AcceptMutex)"
color yellow "((Min|Max)Spare(Threads|Servers)|Start(Threads|Servers))"
color yellow "(MaxClients|(Max)?ThreadsPerChild|MaxRequestsPerChild)"
color yellow "(FancyIndexing|VersionSort|ExecCGI|FollowSymLinks)"
color brightred "(On|Off)[[:space:]]*$"
color brightred "[[:space:]]+(debug|info|notice|warn|error|crit|alert|emerg)[[:space:]]*$"
color brightred "[[:space:]]+(combined|common|referer|agent)[[:space:]]*$"
color brightred "[[:space:]]+(redirect\-carefully|nokeepalive)[[:space:]]*"
color brightred "[[:space:]]+(force\-response\-1\.0)[[:space:]]*"
color brightred "[[:space:]]+(downgrade\-1\.0)[[:space:]]*"
color brightred "[[:space:]]+application/[a-zA-Z\-]+[[:space:]]*"
color brightred "[[:space:]]+type-map[[:space:]]*"
color magenta "[[:space:]]+[0-9]+[[:space:]]*"
color magenta "(/)?(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[1-9])(\.(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9])){3}([[:space:]]+::(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9])/(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9]))?"
color brightcyan start="<" end=">"
color white ""(\\.|[^\"])*""
# Unix-based paths
# can't use \] in the regex for some reason?!? Maybe a bug?
# this is preventing a 100% "to the end of the line" match for a few
# lines (the trailing characters from ] to the EOL are not highlighted.
# if anyone knows how to make it work, let me know.. ;)
color white "[[:space:]]+(/[/\[\^#A-Za-z0-9\.\*\_\-]+)+"
color green "^[[:space:]]*#.*"

Conky rc files (.conkyrc)

Code: Select all

## Conky config highlighting
## 
syntax "Conky" ".conkyrc$"
color brightblue "(use_spacer|background|use_xft|xftfont|xftalpha)" 
color brightblue "(mail_spool|update_interval|own_window)"
color brightblue "(double_buffer|minimum_size)"
color brightblue "(draw_(outline|borders|shades)|stippled_borders)"
color brightblue "border_(margin|width)"
color brightblue "default_((shade_|outline_)?color)"
color brightblue "(alignment|gap_x|gap_y|no_buffers|uppercase)"
color brightblue "^TEXT[[:space:]]*$"
color brightred "[[:space:]]+(yes|no)[[:space:]]*"
color brightred "(top_left|top_right|bottom_left|bottom_right)[[:space:]]*$"
color magenta "[[:space:]]+([[:space:]]*([0-9]\.?))+[[:space:]]*"
color brightred "\$\{?[a-zA-Z_0-9\# ]+\}?"
color green "^[[:space:]]*#.*"
color white "[[:space:]]+\#[0-9A-Fa-f]{6}"
Cheers,
Keith.
Top
Onturenio
n00b
n00b
User avatar
Posts: 49
Joined: Sat Sep 03, 2005 6:50 am
Location: Ontur
Contact:
Contact Onturenio
Website

  • Quote

Post by Onturenio » Sat Sep 10, 2005 1:26 pm

Another question related whith this, can nano to colour the brackets?. This is, if i put the cursor over a bracket, can nano colour it and find the closing one?
Top
sdfg
Apprentice
Apprentice
Posts: 200
Joined: Fri Feb 11, 2005 10:07 pm

  • Quote

Post by sdfg » Fri Mar 03, 2006 2:42 pm

Sorry to drag this up again, but I don't suppose anyone has a Java one?
Top
youngka
n00b
n00b
Posts: 50
Joined: Sun Sep 04, 2005 5:10 pm

  • Quote

Post by youngka » Fri Mar 03, 2006 2:55 pm

Kasyx wrote:Sorry to drag this up again, but I don't suppose anyone has a Java one?
Java is in mine:

Code: Select all

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

## Constantly display the cursor position in the status bar.
set const

## Use cut to end of line with ^K by default
# set cut

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

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

## Use alternate keypad routines
# set keypad

## Allow multiple file buffers (using ^R inserts into separate buffer).
## You must have configured with --enable-multibuffer or --enable-extra
## 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 help 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 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 "(> )+"

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

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

## Allow nano to be suspended with ^Z
# set suspend

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

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

## Disallow file modification, why would you want this in an rc file? ;)
# set view

## Color setup
## Format:
## syntax "short description" ["filename regex" ...]
## color foreground,background "regex" ["regex"...]
##
## Legal colors: white, black, red, blue, green, yellow, magenta, cyan.
## You may use the prefix "bright" to mean a stronger color highlight.
##
## 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|h)$"
# color red "\<[A-Z_]{2,}\>" 
# color green "\<(float|char|int|void|static|const|struct)\>" 
# color brightyellow "\<(if|while|do|else|case|switch)\>"
# color brightcyan "^#( 	)*(define|include|ifn?def|endif|elif|else|if)" 
##
## 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=""(\\.|[^"])*\\( |	)*$" 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 blue start="<" end=">"
# color red "&[^; 	]*;"

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

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

## Here is an example for groff
##
# syntax "groff" "\.ms$" "\.mm$" "\.me$" "\.tmac$" "^tmac." ".rof"
## The argument of .nr or .ds
# color cyan "^\.ds [^ ]*"
# color cyan "^\.nr [^ ]*"
## 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 "^\. *[^ ]*"
## 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 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|seekdir|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 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,brightgreen "[ 	]+$"

##########################################################################
##########################################################################
#
#
# D U M M Y Ruleset
#
#
# If you want to create your own rules you can use this simple example:
#
# syntax "Dummy" "(\.|/|)foo$"  -> this creates the ruleset "Dummy" and it
#				   matches all filenames ending with foo
#		"foo"	   	-> this matches foo exactly
#		"foo.*$"	-> this matches files beginning with foo
#
#
#
# After you selected the files you can define rulesets for this file:
#
#
# color blue "#.*$"		-> colors all after "#" blue on this line
# color red "\@"		-> colors all "@" red, \ means to handle it _not_
#				   as a special sign
# color yellow "\<(profi)\>"	-> colors only the word profi yellow
# color yellow "profi"		-> colors all strings "profi" yellow, also in
#				   profile
# color black "[0-9]"		-> colors all numbers black
# color magenta "'(\\.|[^'])*'" -> colors all between ' and ' magenta,
#				   but only on the same line
# color red "[A-Z0-9\_]+="      -> matches everything folowed  by =
# color green "setenv|export"   -> matches the string setenv OR export
# color cyan "^.*(foobar).*$"   -> colors the whole line cyan, by matching foobar
#                                  on that line
#
# color brightred,blue start="<!--" end="-->"
#
#                               -> colors all between <!-- and --> brightred on blue
#                                  even if there are more lines between
#
#
###########################################################################

## default for any file we open is to treat # as a comment
syntax "default"
color green "^[ \t]*#.*"

syntax "c-file" "\.(c|h)$"
color red "\<[A-Z_]{2,}\>"
color brightblue "\<(float|char|int|void|static|const|struct)\>"
color brightmagenta "\<(if|while|do|else|case|switch)\>"
color brightcyan "^ *# *(define|include|ifn?def|endif|elif|else|if)"
color blue "<[^= ]*>" ""(\\.|[^"])*""
## This string is VERY resource intensive!!!
# color brightyellow start=""(\\.|[^"])*\\ *$" end="^(\\.|[^"])*""
color green "//.*"
color green start="/\*" end="\*/"

### all *cf files (e.g. main.cf, Postfix )
syntax "maincf" "(\.|/|)cf$"
color magenta "\=.*$"
color green "#.*$"
color cyan "[A-Z0-9\_]+="
color blue ""(\\.|[^"])*""
color red "\@"

### all *rc files  ( e.g. .bashrc, inputrc, xtermcontrol .... )
syntax "rcfiles" "\rc$" "(\.|/|)control$"
color red "'(\\.|[^'])*'"
color blue ""(\\.|[^"])*""
color magenta "[A-Z0-9\_]+="
color magenta "\<(sudo)\>"
color cyan "\<(alias)\>"
color brightcyan "\<(export)\>"
color yellow "\<(shopt)\>"
color brightred "\<(umask)\>.*$"
color green "#.*$"

### all *profile files ( ~/.bash_profile, /etc/profile)
syntax "profiles" "(\.|/|)profile$"
color red "'(\\.|[^'])*'"
color blue ""(\\.|[^"])*""
color magenta "[a-zA-Z0-9\_]+="
color magenta "\<(sudo)\>"
color cyan "\<(export)\>" "\<(alias)\>"
color brightred "\<(umask)\>.*$"
color green "#.*$"

### all *js files  ( e.g. Firefox user.js, prefs.js )
syntax "jsfiles" "(\.|/|)js$"
color green "//.*$" start="\/\*" end="\*\/"
color blue "'(\\.|[^'])*'"
color red ""(\\.|[^"])*""
color brightgreen "\<(true)\>"
color brightred "\<(false)\>" "http\:\/\/.*$"
color brightmagenta "[0-9](\\.|[^"])*)"

### all *conf files  (e.g. make.conf, xorg.conf, grub.conf, make.globals, Xfce files...)
syntax "configfiles" "(\.|/|)conf$" "(\.|/|)ample$" "(\.|/|)globals$" "xfce.*$" "syslog-ng" "sudoers"
color brightwhite "\<(alias)\>"
color blue "<(\\.|[^'])*>"
color magenta "[a-zA-Z0-9\_]+="
color white ">(\\.|[^'><])*</"
color green "//.*$"
color red ""(\\.|[^"])*""
color red "title.*$" "\<(server)\>" "\<(logfile)\>" "\<(driftfile)\>" "\<(restrict)\>"
color white ":unscaled" "http\:\/\/" "ftp\:\/\/" "rsync\:\/\/"
color magenta "'(\\.|[^'])*'"
color brightwhite "[0-9]"
color brightwhite "[<>]"
color magenta "Section" "EndSection" "SubSection" "EndSubSection"
color red "\<(root)\>"
color brightred,blue "^.*-->" start="<!--.*" end="$"
color green "#.*$" start="<!--" end="-->"

## Xdefaults
syntax "Xdefaults" "(\.|/|)default.$" "(\.|/|)resource.$" "fonts.alias"
color magenta "XTerm"
color cyan "Rxvt"
color white "\*(\\.|[^'])*\:"
color brightblue "\<(true)\>"
color brightred "\<(false)\>"
color brightwhite "[0-9]"
color green "!.*$" "#.*$"

### several config files
syntax "config" "(\.|/|)config$" "(\.|/|)logout$" "(\.|/|)COLORS$" "(\.|/|)colors$"
color red "/.*$" "TERM" "\..*$" "=.*$" "\*.*$"
color white ":unscaled" "[0-9]"
color blue "setenv|export" "\;"
color green "#.*$"

### more config files
syntax "config2" "(\.|/|)env$" "(\.|/|)server.$" "hosts" "gpm" "local.*$" "bootsplash" "crypto-loop"
color red "/.*$" "http\:\/\/.*$"
color white ":unscaled"
color blue "setenv|export"
color brightwhite "[0-9]"
color green "#.*$"
color white "http\:\/\/" "ftp\:\/\/" "rsync\:\/\/"

### even more config files ;-)
syntax "config3" "iptables" "ntp.*$" "rsyncd" "xfs" "saslauthd" "timidity" "net.*$" "hdparm" "esound" "login.*$"
color red "/.*$" "http\:\/\/.*$" ""(\\.|[^"])*"" "\<(server)\>" "\<(logfile)\>""\<(driftfile)\>"
color white ":unscaled" "http\:\/\/" "ftp\:\/\/" "rsync\:\/\/"
color blue "setenv|export"
color brightwhite "[0-9]"
color green "#.*$"

### all *tab files ( e.g. fstab, crontab, inittab )
syntax "fstab" "(\.|/|)tab$"
color magenta "\<(none)\>.*$" "\<(wait)\>" "\<(respawn)\>"
color red "/dev/hd.*$" "\<(ctrlaltdel)\>" "\<(initdefault)\>"
color blue "/dev/sr.*$" "/dev/cd.*$" "\/sbin.*$"
color cyan "/dev/sd.*$"
color brightcyan "^.*(nfs|smbfs).*$"
color yellow "/dev/fd.*$"
color red "root"
color brightwhite "[0-9]"
color green "#.*$"

###  etc/passwd
syntax "passwd" "(\.|/|)passwd$" "(\.|/|)shadow$"
color white ".*$"
color blue "\:.*$"
color yellow "\:*\:"
color cyan "/.*$"
color red "/bin/false"
color brightred "root"
color brightgreen "/bin/.*sh"
color white "[0-9]"
color magenta "\:\/.*\:"

### all *desc files ( e.g. use.desc, use.local.desc )
syntax "use" "(\.|/|)desc$"
color green ".*\-"
color white "\:.*$"
color white "\-.*$"
color magenta "\:(\\.|[^'])*\-"
color blue "\-(\\.|[^'])*\:"
color yellow "\/(\\.|[^'])*\:"
color red "x86" "http\:\/\/.*$"
color brightred "\!\!(\\.|[^'])*\!\!" "DO NOT SET THIS FLAG YOURSELF!"
color green "#.*$"



##########################################################################
##########################################################################

## Here is an example for your .nanorc
##
syntax "nanorc" "[\.]*nanorc$"
color white "^ *(set|unset).*$"
color cyan "^ *(set|unset) (autoindent|backup|const|cut|fill|keypad|multibuffer|noconvert|nofollow|nohelp|nowrap|operatingdir|preserve|quotestr|regexp|smooth|speller|suspend|tabsize|tempfile|historylog|view)"
color brightwhite "^ *syntax [^ ]*"
color brightblue "^ *set\>" "^ *unset\>" "^ *syntax\>"
color white "^ *color\>.*"
color yellow "^ *color (bright)?(white|black|red|blue|green|yellow|magenta|cyan)\>"
color magenta "^ *color\>"
color green "^#.*$"

## syntax highlighting in xorg.conf
##
syntax "xorg" "xorg\.conf$"
color brightwhite "[^A-Za-z0-9](End)?Sub[sS]ection([^A-Za-z0-9]|[[:space:]]*)"
color brightwhite "^[[:space:]]*(End)?Section([^A-Za-z0-9]|[[:space:]]*)"
color yellow "[^A-Za-z0-9](Monitor|View[pP]ort|Virtual)[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9]Mod(e|es|eline|ulePath|elName)[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](\+vsync|\+hsync|HorizSync|VertRefresh)[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](Rgb|Font)Path[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](Default(Color)?)?Depth[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](Input)?Device[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](Identifier|Screen|Option)[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9]((Left|Right)Of|Driver|Load)[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](VendorName|BoardName|BusID)[^A-Za-z0-9]"
color magenta "[0-9]"
color white ""(\\.|[^"])*""
color green "#.*"

## PHP syntax highlighting
##
syntax "php" "\.php$" "\.php[2345s]$" "\.phtml$"
#special
color brightwhite "([^A-Za-z0-9])|(<\?php|\?>|var|and|or|default|class|extends|true|false|global|function|new|switch|case|break|next|prev|elseif|if|else|foreach|for|as|do|while|exit|declare|require_once|require|include_once|include|return)([^A-Za-z0-9])"   
#types
color brightblue "([^A-Za-z0-9])|(null|int|string|array|float|bool|object|resource)[^A-Za-z0-9]"
#functions (Ack! - Too many!)
color brightmagenta "([^A-Za-z0-9])(setcookie|sprintf|rmdir|move_uploaded_file|readdir|chdir|closedir|getcwd|shuffle|rsort|arsort|round|ceil|floor|is_dir|realpath|sort|usort|in_array|chr|opendir|mktime|getdata|date|fopen|fwrite|fread|fclose|sizeof|nl2br|basename|copy|isset|time|unlink|session_start|trim|rtrim|md5|echo|print|printf|explode|implode|array|split|join|die|function)([^A-Za-z0-9])*"

color brightmagenta "base64_(en|de)code|(un)?serialize|(add|strip)slashes"
color brightmagenta "str(natcasecmp|tolower|toupper|pos|str|istr|_replace)|substr(_count)?"
color brightmagenta "array_(reverse|search|merge|slice|push|pop)"
color brightmagenta "preg_(match(_all)?|replace|split)"
color brightmagenta "file(type|owner|group|perms|size|atime|mtime|_get_contents|_exists)"
color brightmagenta "mysql_(error|connect|select_db|close|query)"

#Etc global command ;) (added by ObsidianX)
color blue "([^A-Za-z0-9])|(global|if|else)([^A-Za-z0-9])*"
#Variables
color brightcyan "\$[A-Za-z0-9_\>-]*"
#strings
color brightyellow ""(\\.|[^"])*""
color brightyellow "'(\\.|[^\'])*'"
#color brightyellow start=""(\\.|[^"])*\\( | )*$" end="^(\\.|[^"])*""
#color brightblue start="".*" end=".*""
#comments
color brightred "//.*"
color brightred "#.*"
color brightred start="/\*" end="\*/"

## Here is an example for shell scripts
##
syntax "shellscript" "\.sh$" ".bashrc"

color brightgreen "^[a-zA-Z_0-9]+\(\)"
color brightwhite "\<(case|do|done|elif|else|esac|exit)\>"
color brightwhite "\<(fi|for|function|if|in|local|read)\>"
color brightwhite "\<(return|select|shift|then|time|until|while)\>"
color brightwhite "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color brightwhite "-(e|d|f|r|g|u|w|x|L)\>"
color brightwhite "-(eq|ne|gt|lt|ge|le|s|n|z)\>"

# commands
color brightblue "\<make\>" 
color brightblue "\<(alias|cat|cd|chmod|chown|cp|echo|env)\>"
color brightblue "\<(eval|export|grep|install|let|ln|ls)\>"
color brightblue "\<(mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
# a program I installed
color magenta "(figlet)"
# variables?
color brightred "\$\{?[a-zA-Z_0-9]+\}?"
# strings?
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
color brightyellow start=""EOF"" end="EOF"
# comments
color green "#.*$"

## Apache httpd.conf highlighting
##
#how to add sites-enabled files?  "default" is too generic to keep in here I think
syntax "Apache2" "apache2\.conf$" "httpd\.conf$" "default"
color brightwhite "(ServerRoot|(Lock|Pid)File|Timeout|(Max)?KeepAlive(Requests|Timeout)?)"
color brightwhite "(User|Group|LogFormat|ErrorLog|Include|(Script)?Alias)"
color brightwhite "(ErrorDocument|AccessFileName|UseCanonicalName|TypesConfig|DefaultType)"
color brightwhite "(HostnameLookups|IndexOptions|(Readme|Header)Name|LanguagePriority)"
color brightwhite "(AddIcon(ByEncoding|ByType)?|DefaultIcon|IndexIgnore|BrowserMatch)"
color brightwhite "(Add(Encoding|Language|(Default)?Charset|Type|Handler)|DirectoryIndex)"
color brightwhite "(DocumentRoot|Server(Admin|Signature)|LogLevel|CustomLog)"
color brightwhite "((Force)?LanguagePriority|NameVirtualHost)"
color yellow "(SetHandler|Order|Deny|Allow|SetOutputFilter)"
color yellow "(AllowOverride|FileInfo|AuthConfig|Limit)"
color yellow "([^A-Z0-9a-z]Options|Indexes|(\+|\-)?SymLinksIfOwnerMatch)"
color yellow "(Includes(NoExec)?|(\+|\-)?MultiViews)"
color yellow "(None|allow,deny|deny,allow|(allow)? from (all)?|Prefer|Fallback)"
color yellow "(Add(Handler|OutputFilter)|NumServers|AcceptMutex)"
color yellow "((Min|Max)Spare(Threads|Servers)|Start(Threads|Servers))"
color yellow "(MaxClients|(Max)?ThreadsPerChild|MaxRequestsPerChild)"
color yellow "(FancyIndexing|VersionSort|ExecCGI|FollowSymLinks)"
color brightred "(On|Off)[[:space:]]*$"
color brightred "[[:space:]]+(debug|info|notice|warn|error|crit|alert|emerg)[[:space:]]*$"
color brightred "[[:space:]]+(combined|common|referer|agent)[[:space:]]*$"
color brightred "[[:space:]]+(redirect\-carefully|nokeepalive)[[:space:]]*"
color brightred "[[:space:]]+(force\-response\-1\.0)[[:space:]]*"
color brightred "[[:space:]]+(downgrade\-1\.0)[[:space:]]*"
color brightred "[[:space:]]+application/[a-zA-Z\-]+[[:space:]]*"
color brightred "[[:space:]]+type-map[[:space:]]*"
color magenta "[[:space:]]+[0-9]+[[:space:]]*"
color magenta "(/)?(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[1-9])(\.(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9])){3}([[:space:]]+::(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9])/(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9]))?"
color brightcyan start="<" end=">"
color white ""(\\.|[^"])*""
# Unix-based paths
# can't use \] in the regex for some reason?!? Maybe a bug?
# this is preventing a 100% "to the end of the line" match for a few
# lines (the trailing characters from ] to the EOL are not highlighted.
# if anyone knows how to make it work, let me know.. ;)
color white "[[:space:]]+(/[/\[\^#A-Za-z0-9\.\*\_\-]+)+"
color green "^[[:space:]]*#.*"

## Conky config highlighting
## 
syntax "Conky" ".conkyrc$"
color brightblue "(use_spacer|background|use_xft|xftfont|xftalpha)" 
color brightblue "(mail_spool|update_interval|own_window)"
color brightblue "(double_buffer|minimum_size)"
color brightblue "(draw_(outline|borders|shades)|stippled_borders)"
color brightblue "border_(margin|width)"
color brightblue "default_((shade_|outline_)?color)"
color brightblue "(alignment|gap_x|gap_y|no_buffers|uppercase)"
color brightblue "^TEXT[[:space:]]*$"
color brightred "[[:space:]]+(yes|no)[[:space:]]*"
color brightred "(top_left|top_right|bottom_left|bottom_right)[[:space:]]*$"
color magenta "[[:space:]]+([[:space:]]*([0-9]\.?))+[[:space:]]*"
color brightred "\$\{?[a-zA-Z_0-9\# ]+\}?"
color green "^[[:space:]]*#.*"
color white "[[:space:]]+\#[0-9A-Fa-f]{6}"

## Code Highlighting for perl source
##
syntax "perl" "\.p[lm]$"
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))\>"
color red "\<(e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork))\>"
color red "\<(get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport))\>"
color red "\<(([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join)\>"
color red "\<(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?)\>"
color red "\<(push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek(dir)?)\>"
color red "\<(se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?)\>"
color red "\<(sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr(y)?|truncate|umask)\>"
color red "\<(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 manpages
##
syntax "manpage" "\.[1-9]x?$"
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)" 


# yay, python
syntax "python" "\.py$"
#color red "[\[\](){}:]"
# flow control
color yellow "([[:space:]]|^)(and|break|class|def|elif|else|except|for|if|import|in|or|print|raise|return|try|while)([[:space:]]|:)"
color brightblue "\<__dict__\>"
color brightblue "(Exception|getopt|os|string|sys)"
# methods
#color brightcyan "\.?(abspath|argv|curdir|error|exists|exit|extend)"
#color brightcyan "\.?(iteritems|path|popen|prefix|readlines|remove|returncode|startswith|std(out|err)|version|wait|write)"
#color brightcyan "\.getopt"
color brightcyan "\.[A-Za-z]+"
# errors
color brightyellow "(IOError)"
color green "#.*"
color brightred "self"
#color cyan "(["']).*?[^\]\1"
# this is kludge to avoid the line for the example C syntax marked "this is wasteful"
# strings
color cyan """" "''"
color cyan start="'''" end="'''"
color cyan start=""""" end="""""
color cyan ""(\\.|[^"])*"" "'(\\.|[^'])*'"

# numbers
color magenta "([[:space:]]+[0-9]+[[:space:]]*)|(\([0-9]+\))"
Top
sdfg
Apprentice
Apprentice
Posts: 200
Joined: Fri Feb 11, 2005 10:07 pm

  • Quote

Post by sdfg » Fri Mar 03, 2006 3:28 pm

You are an absolute star! That's got pretty much anything I'll need for a long time *grin*

Thanks again!
Top
niffs
Apprentice
Apprentice
User avatar
Posts: 212
Joined: Sun Apr 25, 2004 12:08 am
Location: The Wired
Contact:
Contact niffs
Website

  • Quote

Post by niffs » Wed Mar 29, 2006 2:51 am

Well, here's my variant on the PHP highlighting. I mostly just changed some *s to +s (Nano kept complaining about zero-length regexps), and made the string and function regexps more precise...
Also a couple color tweaks, as blue doesn't show up well in my semi-transparent terms.

Code: Select all

syntax "php" ".php"
color cyan ".?[[:alnum:]_-]+\("
color magenta "\$[a-zA-Z_0-9$]+"
color brightcyan "([[:space:]]+|^)(var|class|function|echo|case|continue|switch|break|default|exit|switch|if|else|elseif|@|while|return)([^[:alnum:]])"
color green "[.,{}();]"
color brightwhite "\[|\]|="
color red "'(\\.|[^'])*'" ""(\\.|[^\"])*""
color brightyellow "#.*|//.*"
color brightyellow start="/\*" end="\*/"
color white start="\?>" end="<\?(php)?"
I'm not sure exactly how resource intensive this is, though...
No matter where you are... everyone is always connected.
[ .: my website :. ]
Top
Richy
n00b
n00b
Posts: 65
Joined: Sun Mar 28, 2004 1:51 pm
Location: Berlin
Contact:
Contact Richy
Website

Re: Pascal anyone?

  • Quote

Post by Richy » Thu Apr 06, 2006 12:55 pm

ravloony wrote:So does anyone have one that does freepascal? I use that at school and it would be nice. Nano is such a cool editor. :) The teachers try to make us use emacs, but to be honest it's not my favourite, and has wierd bugs. Also the PC's there have about 2M of RAM, so the lighter, the better...
Anyway, if someone has got a pascal-capable .nanorc file, could they please post it?
be cool.
Ravloony
Hey, I tried to make one, but I am not able to make nano highlight Comments in "{ }"

Code: Select all

## Here is an example for Delphi/Pascal source
##
syntax "Delphi Source" "\.pas$"
color brightcyan "\<(boolean|byte|char|double|float|integer|long|new|short|this|transient|void)\>"
color brightred "\<(break|case|catch|continue|default|do|else|finally|for|if|then|return|switch|throw|try|while|function)\>"
color cyan "\<(abstract|unit|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchr$color brightyellow "\<(until|repeat|var|uses|type|begin|end|const)\>"
color magenta "\<(true|false|null|procedure)\>"
color brightblue "//.*"
#color brightblue start="{" end="}"
I Copied the Java Source example and modified it a bit. So there is probably a lot of stuff in there, that does not exist in Pascal.. It is a start anyways ;) (for black background)
The Problem is, that the start.... end... thing is not working

Code: Select all

color brightblue start="{" end="}"
gets me
that:

Code: Select all

Error in /etc/nanorc on line 423: Bad regex "{": Invalid preceding regular expression

Press Return to continue starting nano
I have tried a lot of different keys, but none of them appears to work
Ideas anyone?
Richy
Top
niffs
Apprentice
Apprentice
User avatar
Posts: 212
Joined: Sun Apr 25, 2004 12:08 am
Location: The Wired
Contact:
Contact niffs
Website

  • Quote

Post by niffs » Thu Apr 06, 2006 8:47 pm

Code: Select all

color brightblue start="{" end="}"
gets me
that:

Code: Select all

Error in /etc/nanorc on line 423: Bad regex "{": Invalid preceding regular expression

Press Return to continue starting nano
Curly braces have significance in regexps, it may help to escape them:

Code: Select all

color brightblue start="\{" end="\}"
I may be wrong though, I'm no expert on these things, but it's worth a try at least.
No matter where you are... everyone is always connected.
[ .: my website :. ]
Top
Richy
n00b
n00b
Posts: 65
Joined: Sun Mar 28, 2004 1:51 pm
Location: Berlin
Contact:
Contact Richy
Website

You are right

  • Quote

Post by Richy » Fri Apr 07, 2006 8:10 am

It was woth a try.

So, here ist at least some Pascal/Delphi highlighting.

Code: Select all

## Here is an example for Delphi/Pascal source
##
syntax "Delphi Source" "\.pas$"
color brightcyan "\<(boolean|byte|char|double|float|integer|long|new|short|this|transient|void)\>"
color brightred "\<(break|case|catch|continue|default|do|else|finally|for|if|then|return|switch|throw|try|while|function)\>"
color cyan "\<(abstract|unit|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|$color brightyellow "\<(until|repeat|var|uses|type|begin|end|const)\>"
color magenta "\<(true|false|null|procedure)\>"
color brightblue "//.*"
color brightblue start="\{" end="\}"
Thanks a million

RIchy
Top
vai777
Tux's lil' helper
Tux's lil' helper
Posts: 129
Joined: Thu Oct 07, 2004 4:42 pm
Location: Spain

  • Quote

Post by vai777 » Fri Apr 07, 2006 11:17 am

I get this error:

Code: Select all

Error in /home/javi/.nanorc on line 351: Duplicate syntax name ebuild

Pulsa intro para continuar iniciando nano
But in line 351 I have:

Code: Select all

syntax "ebuild" "\.e(build|class)$"
And 'ebuild' it's not repeated in the whole file!!

I find it pretty non-sense. Can you help me? Maybe is because highlighting the word class in C-file and Java
Life is short but wide
Top
vai777
Tux's lil' helper
Tux's lil' helper
Posts: 129
Joined: Thu Oct 07, 2004 4:42 pm
Location: Spain

  • Quote

Post by vai777 » Fri Apr 07, 2006 11:20 am

Maybe is because highlighting the word class in C-file and Java
It's not, I've tried it.
Life is short but wide
Top
niffs
Apprentice
Apprentice
User avatar
Posts: 212
Joined: Sun Apr 25, 2004 12:08 am
Location: The Wired
Contact:
Contact niffs
Website

  • Quote

Post by niffs » Sat Apr 15, 2006 12:10 am

I just emerged the newest nano (1.3.11), and am having the same "duplicate syntax name ebuild" problem.
No matter where you are... everyone is always connected.
[ .: my website :. ]
Top
Gunni hinn
n00b
n00b
Posts: 1
Joined: Thu Jul 20, 2006 12:17 pm
Location: Iceland

  • Quote

Post by Gunni hinn » Thu Jul 20, 2006 1:07 pm

Hi.

This is a great thread, it helped me a lot. But I'm still having a couple of problems; I like to use nano for tex files and would like to highlight the math material. They are delimited by two commands, either enclosed in $ signs ( like $ math stuff here $ ) or with \[ and \] ( as in \[ math here \] ). The code I'm trying to use is

color cyan start="\$" end="\$"
color cyan start="\[" end="\]"

The problem with the first line is that it highlights everything from the first $ sign. Changing it to

color cyan start="$" end="$"

gives a segmentation fault and

color cyan start="\$" end="$"

almost works, but it highlights the entire line the $ sign is in. The problem with the second line is that I can't get the file to start highlighting only if \[ is present, not if either \ or [ are there. If anyone has some ideas about what would work that'd be great.

Thanks,
Gunni.
Blank.
Top
suredeath
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 101
Joined: Tue Aug 15, 2006 10:30 am
Location: Easterwood, N.Br., The Netherlands
Contact:
Contact suredeath
Website

  • Quote

Post by suredeath » Sat Sep 09, 2006 2:11 pm

FWIW, the default /etc/nanorc also contains several examples, all commented out by default...

Maybe in there you find clues as well as to why some of your own stuff yields redefinition or duplicate errors?

And thanks for all the marvellous handiwork you all added here. If only I were that proficient using regex. Still having a hard time with it. It'll come, it'll come....

Cheers
Sd.
Top
cpdsaorg
Guru
Guru
User avatar
Posts: 359
Joined: Thu Oct 16, 2003 9:41 am

  • Quote

Post by cpdsaorg » Thu Nov 09, 2006 8:23 am

DUDE!! the colors are BEAUTIFULL!!

got this error here when i tried the blue coment lines:

Code: Select all

nano -w .nanorc

Error in /home/alj/.nanorc on line 1: The "default" syntax must take no extensions

Error in /home/alj/.nanorc on line 2: Regex strings must begin and end with a " character

Error in /home/alj/.nanorc on line 4: Syntax "default" has no color commands

Press Enter to continue starting nano.
after removing the ".*" it worked...

question. is there a way to make syntax highlighting for nano the system default without having to add a .nanorc file to everyone's home dir?
PentiumM 2.0 GHz, MSI 915GM Speedster-FA4, Seagate ST3500641AS SATA 400GB
Top
Xk2c
Apprentice
Apprentice
User avatar
Posts: 240
Joined: Sat Jul 17, 2004 3:10 am

  • Quote

Post by Xk2c » Sat Nov 11, 2006 2:08 pm

cpdsaorg wrote: question. is there a way to make syntax highlighting for nano the system default without having to add a .nanorc file to everyone's home dir?
Yes it is:

/etc/nanorc
useful Xterm, Aterm and RXVT-Unicode features
Top
b3cks
Veteran
Veteran
User avatar
Posts: 1481
Joined: Tue Mar 23, 2004 10:01 am
Location: Bremen (GER)

  • Quote

Post by b3cks » Fri Nov 17, 2006 7:57 pm

Just wanted to thank youngka for his great nanorc! Love it! :wink:
I am /root and if you see me laughing you better have a backup.
Top
Post Reply

64 posts
  • Previous
  • 1
  • 2
  • 3
  • Next

Return to “Documentation, Tips & Tricks”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic