# Enable nano syntax highlighting

## wdreinhart

Not everyone knows it, but Gentoo's favorite edito, nano, supports syntax hilighting.  To enable it, you will need to  gunzip /usr/doc/nano-1.2.2/nanorc.sample.gz  and name it "~/.nanorc".  Then all you have to do is open it (in nano, of course!) and uncomment the syntax blocks for files you want to enable syntax hilighting in.

I have a very basic .ebuild syntax block here if anyone is interested in that.  Please post udated versions if you improve on it.

```

 syntax "ebuild" "\.ebuild$"

 color brightcyan "^ *eclass\>" "^ *inherit\>"

 color brightwhite "^ *src [^ ]*"

 color brightblue "src_compile\>" "src_unpack\>" "src_install\>" "^ *einfo\>" "$ color yellow "^ *export\>"

 color magenta "\<(if|then|fi)\>"

 color green "#.*$"

```

----------

## marshall_j

This came up in a earlier thread but it started off about vim or something so I think lots of people could have missed it. Nano should come out of the box like this!

This is one that will just highlight all comments in blue. I find it handy for all the misc files just so you can see what should be edited and what should be read:

```

syntax "default" ".*"

color blue "^#.*"

```

Make sure you put it first if you add it to your nanorc file tho as the entries at the bottom overwrite the ones at the top.

----------

## meowsqueak

And for editing your .emacs file (but why you'd do this in nano and not emacs is another question entirely):

```
syntax "dotemacs" "^.emacs$"

color green  "^;.*"
```

It's simple but hopefully as more people read this thread and get the 'idea' we'll see more complex ones  :Smile: 

----------

## fca

Some more ebuild high-lighting:

```

syntax "ebuild" "\.ebuild$"

color brightcyan "^ *eclass\>" "^ *inherit\>"

color brightwhite "^ *src [^ ]*"

color brightblue "src_compile\>" "src_unpack\>" "src_install\>" "e(info|begin|end|warn|error|patch)\>" "^ *die\>"

color brightmagenta "use\>" "^ *IUSE\>" "^ *(filter|strip|allowed)-flags\>"

color cyan "^ *keepdir\>" "^ *dodir\>" "^ *doman\>"

color yellow "^ *export\>"

color magenta "\<(if|then|else|fi)\>"

color brightgreen "\$\{(.|([A-Z_]*))\}"

color green "#.*$"

```

----------

## duende

Does anyone have an entry to enable PHP syntax highlighting?

----------

## neenee

i'd just like to say that i love this thread.

----------

## morb

heres the php syntax you asked for duende, please post any updates if needed!

```
syntax "php" ".php"

color brightblue "(.*)\("

color blue "\$[a-zA-Z_0-9$]*|=*|=*|<|>|!"

color green "(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|@|while) "

color green "[.,{}();]"

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

color brightyellow "#.*|//.*"

color brightyellow start="/\*" end="\*/"

color brightblue "(<\?php|\?>)"
```

----------

## Mafteah

Someone have entry for c/cpp/h etc. files?

----------

## Loke

 *Mafteah wrote:*   

> Someone have entry for c/cpp/h etc. files?

 

Already present in the sample .nanorc file

----------

## roofy

can anyone whip up some bash highlighting?

----------

## neenee

please search for bash colors/modifications using google.com/linux

or on these forums. to start you off a bit, my personal favourite is 

vico's.

----------

## Snake007uk

why not just make an ebuild called gentoo colour which does this ???

----------

## stahlsau

 *Quote:*   

> This is one that will just highlight all comments in blue. I find it handy for all the misc files just so you can see what should be edited and what should be read:
> 
> Code:
> 
> syntax "default" ".*"
> ...

 

I love you guys....thx!

----------

## meowsqueak

You can extend this slightly to catch indented comments, which are present in some sorts of files:

```
syntax "default" ".*"

color blue "^[ \t]*#.*
```

----------

## neenee

thanks  :Wink: 

(this post also serves as a bump since i'd like

to see more ideas people have had)

----------

## jhgz1

the blue coloring of the comments looks really great!

great job man!   :Very Happy: 

----------

## Chrisje

ow yeah.. sweet!

thx!

----------

## Cid

hi, can anyone help with python syntax coloring? i found this:

```

syntax "python" "\.py$"

color red "[\[\](){}:]"

color brightblue "\<__dict__\>"

color green "#.*"

color cyan "([\"']).*?[^\\]\1"

# this is kludge to avoid the line for the example C syntax marked "this is wastefu$color cyan "\"\"" "''"

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

```

but i'm getting an error on the color red "[\[\](){}:]"  line saying:

```

Error in /home/chris/.nanorc on line 275: Bad regex "[\[\](){}:]": Invalid content of \{\}

```

also, is there a way to make it so any characters after a # is the comment color? it's only working for comments that start at the beginning. thanks a lot

----------

## meowsqueak

I imagine you'll need to escape () too. I.e. \(\).

Anything after a hash:

```
color blue "#.*"
```

I realise you've already got this - but it works for me...

----------

## Cid

i tried putting those escapes, but it still didn't work. and the comment one i have is the same as yours but mine only colors the comments that start on the beginning of the line.

----------

## singular

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.

```
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.

----------

## LeTene

Bumpity for this cool thread - now I can do my PHP coding over SSH without bitching & griping   :Cool:  .

----------

## allucid

 *wdreinhart wrote:*   

> Not everyone knows it, but Gentoo's favorite edito, nano, supports syntax hilighting.  To enable it, you will need to  gunzip /usr/doc/nano-1.2.2/nanorc.sample.gz  and name it "~/.nanorc".  Then all you have to do is open it (in nano, of course!) and uncomment the syntax blocks for files you want to enable syntax hilighting in.
> 
> I have a very basic .ebuild syntax block here if anyone is interested in that.  Please post udated versions if you improve on it.
> 
> ```
> ...

 

also check out /etc/nanorc (which is kept up-to-date by portage)

----------

## Xk2c

Hello

I´ve done my own nanorc with hightlight for perhaps 90% of the Configurationfiles .

Please have a look here :

http://article.gmane.org/gmane.linux.gentoo.user.german/9565

This post is in German, but there are two nanorc in the end.

One for white and one for black background.

Do you have Ideas to get it even better ?

I think it would be great to have something like this to come per default with nano.

I´ve thought about to create a bug to enhance nano with that.

Ist that the right way ?

Is someone responsible for nano here ?

bye Thilo

PS. mail if you are interested in this nanorc

----------

## Xk2c

Hi

 *Xk2c wrote:*   

> I´ve done my own nanorc with hightlight for perhaps 90% of the Configurationfiles .

 

now I´ve created a enhancement Bug.

Please have a look here #58477:

https://bugs.gentoo.org/show_bug.cgi?id=58477

If you would like to get my nanorc for white background:

https://bugs.gentoo.org/attachment.cgi?id=36233&action=view

..or the nanorc for black background:

https://bugs.gentoo.org/attachment.cgi?id=36234&action=view

bye folks

----------

## Snake007uk

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

----------

## Xk2c

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: 

----------

## Snake007uk

damn  :Sad: 

Snake

----------

## jonaswidarsson

Take care not to write too resource intense regex definitions.

Here's my update to the PHP hi-lighter:

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

----------

## Snake007uk

Hi can some one send me a nano colour file which covers most files please

@ snake007uk-at-hotmail.com

Cheers

----------

## ravloony

So does anyone have one that does freepascal? I use that at school and it would be nice. Nano is such a cool editor.  :Smile:  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

----------

## paladin-zero

 *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.
> 
> ```
> ...

 

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.

----------

## Sourcecode

 *Mafteah wrote:*   

> Someone have entry for c/cpp/h etc. files?

 

Sure... this is Aktually from my Nano-1.3.7

```

########################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 ""(\\.|[^\"])*"" "'(\\.|[^'])*'"

```

----------

## youngka

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:

```

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

```

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

----------

## Onturenio

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?

----------

## sdfg

Sorry to drag this up again, but I don't suppose anyone has a Java one?

----------

## youngka

 *Kasyx wrote:*   

> Sorry to drag this up again, but I don't suppose anyone has a Java one?

 

Java is in mine:

```

## 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]+\))"

```

----------

## sdfg

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

Thanks again!

----------

## niffs

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.

```
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...

----------

## Richy

 *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.
> ...

 

Hey, I tried to make one, but I am not able to make nano highlight Comments in "{ }" 

```
## 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  :Wink:  (for black background)

The Problem is, that the start.... end... thing is not working

```
color brightblue start="{" end="}"
```

 gets me

that:

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

----------

## niffs

 *Quote:*   

> 
> 
> ```
> color brightblue start="{" end="}"
> ```
> ...

 

Curly braces have significance in regexps, it may help to escape them:

```
color brightblue start="\{" end="\}"
```

I may be wrong though, I'm no expert on these things, but it's worth a try at least.

----------

## Richy

It was woth a try.

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

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

----------

## vai777

I get this error:

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

Pulsa intro para continuar iniciando nano
```

But in line 351 I have:

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

----------

## vai777

 *Quote:*   

> Maybe is because highlighting the word class in C-file and Java

 

It's not, I've tried it.

----------

## niffs

I just emerged the newest nano (1.3.11), and am having the same "duplicate syntax name ebuild" problem.

----------

## Gunni hinn

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.

----------

## suredeath

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.

----------

## cpdsaorg

DUDE!! the colors are BEAUTIFULL!!

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

```
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?

----------

## Xk2c

 *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

----------

## b3cks

Just wanted to thank youngka for his great nanorc! Love it!  :Wink: 

----------

## boniek

Just wanted to drop by and say thanks. Good stuff  :Smile: 

----------

## ryszardzonk

Thanks for this great stuff of which I take advantage for long time now.  My question is however is there someone to make the *.po and ChangeLog file syntax for the greater benefit of human kind  :Smile:  One might use this Midnight Commander syntax to help us little people out  :Wink: 

mc changelog syntax

```
context default

    spellcheck

context linestart \t \n\n

    keyword wholeright +() brightmagenta

    keyword linestart \t\*\s*: brightcyan

    keyword (*): cyan

    keyword (*)\{\s\}[*]: cyan

context linestart \s\s\s\s\s\s\s\s \n\n

    keyword wholeright +() brightmagenta

    keyword \*\s*: brightcyan

    keyword (*): cyan

    keyword (*)\{\s\}[*]: cyan

    keyword whole \* brightcyan

context linestart 19+-+\s \n yellow

    keyword <+> brightred

context linestart 20+-+\s \n yellow

    keyword <+> brightred

context linestart Mon\s \n yellow

    keyword <+> brightred

context linestart Tue\s \n yellow

    keyword <+> brightred

context linestart Wed\s \n yellow

    keyword <+> brightred

context linestart Thu\s \n yellow

    keyword <+> brightred

context linestart Fri\s \n yellow

    keyword <+> brightred

context linestart Sat\s \n yellow

    keyword <+> brightred

context linestart Sun\s \n yellow

    keyword <+> brightred
```

*.po syntax

```
context default

    keyword linestart msgstr\s\"\"\n\n brightred

    keyword linestart msgid brightcyan

    keyword linestart msgstr brightcyan

context linestart #,\sfuzzy \n\n brightred

context linestart #: \n white

context linestart #, \n white

    keyword c-format yellow

context linestart #~ \n red

context linestart # \n brown

    spellcheck

context exclusive linestart msgid \n cyan

    spellcheck

    keyword \"\n\"

    keyword \\" brightgreen

    keyword \\\n brightgreen

    keyword %% brightgreen

    keyword %\[#0\s-\+,\]\[0123456789\]\[.\]\[0123456789\]\[L\]\{eEfgG\} brightgreen

    keyword %\[0\s-\+,\]\[0123456789\]\[.\]\[0123456789\]\[hl\]\{diouxX\} brightgreen

    keyword %\[hl\]n brightgreen

    keyword %\[.\]\[0123456789\]s brightgreen

    keyword %[*] brightgreen

    keyword %c brightgreen

    keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen

    keyword \\\\ brightgreen

    keyword \\' brightgreen

    keyword \\\{abtnvfr\} brightgreen

context exclusive linestart msgstr \n green

    spellcheck

    keyword \"\n\"

    keyword \\" brightgreen

    keyword \\\n brightgreen

    keyword %% brightgreen

    keyword %\[#0\s-\+,\]\[0123456789\]\[.\]\[0123456789\]\[L\]\{eEfgG\} brightgreen

    keyword %\[0\s-\+,\]\[0123456789\]\[.\]\[0123456789\]\[hl\]\{diouxX\} brightgreen

    keyword %\[hl\]n brightgreen

    keyword %\[.\]\[0123456789\]s brightgreen

    keyword %[*] brightgreen

    keyword %c brightgreen

    keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen

    keyword \\\\ brightgreen

    keyword \\' brightgreen

    keyword \\\{abtnvfr\} brightgreen

```

----------

## laserprinter

these are great things, thank you..

----------

## ryszardzonk

After some time I made this syntax for *.po files. It is in no way complete, but here it comes anyway

```
## *.po file syntax

##

syntax "po" "\.po$"

color brightblue "\<(msgid|msgstr)\>"

color brightred "\/"

color green "#.*$"

color red "\<fuzzy\>"

color yellow "\<c-format\>"

color yellow "\""

color red  "\"\""

color brightyellow  "\"\\n\""

color brightmagenta "\<(Project\-Id\-Version|Report\-Msgid\-Bugs\-To|Last\-Translator|Language\-Team|charset)\>"

color cyan "\<(POT\-Creation\-Date|PO\-Revision\-Date|MIME\-Version|Content\-Type|Content\-Transfer\-Encoding)\>"

color yellow "\<(Copyright|(C))\>"

color yellow "[0-9]"

color brightyellow "\<(UTF|ISO|Windows|Mac|IBM)\>\-[0-9]"

color red "#~.*$"

```

ChangeLog syntax. Not quite what you would call perfect but somewhat usable

```

## Changelog file syntax

##

syntax "changelogs" "ChangeLog*"

color green "\+"

color red "\-"

color brightwhite "[0-9]"

color brightblue "[0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]"

color blue "[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]"

color blue "[0-9][0-9][0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]"

color blue "\<(CEST|CET|CST||CDT|EDT)\>"

color yellow "[0-9]\..*$"

color cyan "\*.*$"

color brightblue "\<(pre.*$|beta.*$|rc.*$|release.*$)\>"

color green "#.*$"

icolor brightred "^[[:space:]]*[.0-9A-Z_]*:"

color green "[[:space:]]*[.0-9A-Z_]*[[:space:]]*[.0-9A-Z_]*[[:space:]]<"

color brightyellow "<.*>$"

color brightwhite "commit[[:space:]]*[.0-9A-Z_]*$"
```

There must be a better solution than this... 

I also had to put include "/usr/share/nano/changelog.nanorc"  in end of my /etc/nanorc for it to work...

Edit:I added some more stuff in there.  *.po syntax needs highlighting of phrases to catch syntax errors...

----------

## bigmauler

Cool I didn't know nano did this...Nice thread, now my screen is pretty!

----------

## ryszardzonk

For convenience I placed all the syntax highlighting stuff to be found here along with few more syntaxes in this package http://bigvo.dyndns.org/nanosyntax.tar.bz2

WARNING: Tested just with the black background

----------

## bladdo

I know this thread is old but thanks guys, nano just got that much better.

----------

## Sadako

Seeing as bladdo already necro'd it...  :Razz: 

I wrote a little bash wrapper script which uses the `file` command on a file and uses the value to determine what (if any) syntax highlighting to enable in nano via --syntax.

It has a couple of issues though, for one thing you can only use --syntax once on the command line, and all files will end up using the same syntax (so in the script if you pass more than file it'll just start nano normally and let nano decide which highlighting to enable).

Another issue is `file` isn't entirely accurate, most noticeably is that it identifies a lot of diff/patch as C source files if there is a significant comment at the top of the file.

Anyways, here's the script if anyone is interested (and a link);

```
#!/bin/bash

NANO="/usr/bin/nano"

for PARAM; do

        if [[ -f $PARAM ]]; then

                [[ ! $NANOFILE ]] && NANOFILE="${PARAM}" || exec $NANO "$@"

        fi

done

case `file -b "${NANOFILE}"` in

        *perl*"script text"* )

                SYNTAX="--syntax perl"

                ;;

        *python*"script text"* )

                SYNTAX="--syntax python"

                ;;

        *ruby*"script text"* )

                SYNTAX="--syntax ruby"

                ;;

        *PHP*"script text"* )

                SYNTAX="--syntax php"

                ;;

        *"script text"* )

                SYNTAX="--syntax sh"

                ;;

        *"diff output text"* )

                SYNTAX="--syntax patch"

                ;;

        *C*"program text"*)

                SYNTAX="--syntax c"

                ;;

        *"Java program text"* )

                SYNTAX="--syntax java"

                ;;

        *"HTML document text"* )

                SYNTAX="--syntax html"

                ;;

esac

exec $NANO ${SYNTAX} "$@"

exit
```

It's only really useful for scripts without file extensions (although that alone makes it invaluable to me), and could probably be improved quite a bit, but it does what I want.

It should be easily extendable, too.

----------

## steveL

Nice one Hopeless, I needed this recently as I was installing on a machine with no X, ended up just adding the filename (update) to this syntax highlighting file: http://dev.gentooexperimental.org/~igli/src/bash.nanorc

It works really nicely for BASH, in some places better than kate. Multi-line strings are the only place it falls over, but you still see the first line in orange.

----------

## VinzC

Hi all.

I've just upgraded nano to version 2.1.9 and python syntax doesn't seem to work anymore. Nothing is highlighted anymore. Forcing syntax to bash gives some colours à la bash script but I just wonder why python syntax highlighting doesn't work.

```
## Here is an example for Python.

##

syntax "python" "\.py$"

header "^#!.*/python[-0-9._]*"

icolor brightblue "def [0-9A-Z_]+"

color brightcyan "\<(and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield)\>"

color brightgreen "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}"

color brightgreen "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}"

color brightgreen start=""""[^"]" end=""""" start="'''[^']" end="'''"

color brightred "#.*$"

color ,green "[[:space:]]+$"
```

I have added the last colour syntax item so that I see trailing spaces. Any idea?

----------

## eyoung100

A small pointer for all of you:

You may want to consider reading and then uncommenting

```
/etc/nanorc
```

Uncommenting this file will override your per user settings in ~/.nanorc and enable highlighting on a system-wide basis.  Here is the snippet dealing with colors: 

```

## Color setup

##

## Format:

##

## syntax "short description" ["filename regex" ...]

##

## The "none" syntax is reserved; specifying it on the command line is

## the same as not having a syntax at all.  The "default" syntax is

## special: it takes no filename regexes, and applies to files that

## don't match any other syntax's filename regexes.

##

## color foreground,background "regex" ["regex"...]

## or

## icolor foreground,background "regex" ["regex"...]

##

## "color" will do case sensitive matches, while "icolor" will do case

## insensitive matches.

##

## Valid colors: white, black, red, blue, green, yellow, magenta, cyan.

## For foreground colors, you may use the prefix "bright" to get a

## stronger highlight.

##

## To use multi-line regexes, use the start="regex" end="regex"

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

##

## If you wish, you may put your syntaxes in separate files.  You can

## make use of such files (which can only include "syntax", "color", and

## "icolor" commands) as follows:

##

## include "/path/to/syntax_file.nanorc"

##

## Unless otherwise noted, the name of the syntax file (without the

## ".nanorc" extension) should be the same as the "short description"

## name inside that file.  These names are kept fairly short to make

## them easier to remember and faster to type using nano's -Y option.

##

## All regexes should be extended regular expressions.

## Key bindings

## Please see nanorc(5) for more details on this

##

## Here are some samples to get you going

##

# bind M-W nowrap main

# bind M-A casesens search

# bind ^S research main

## Set this if your backspace key sends delete most of the time (2.1.3+)

# bind kdel backspace all

## Nanorc files

# include "/usr/share/nano/nanorc.nanorc"

## C/C++

# include "/usr/share/nano/c.nanorc"

## Cascading Style Sheets

# include "/usr/share/nano/css.nanorc"

## Debian files

# include "/usr/share/nano/debian.nanorc"

## Gentoo files

# include "/usr/share/nano/gentoo.nanorc"

## HTML

# include "/usr/share/nano/html.nanorc"

## PHP

# include "/usr/share/nano/php.nanorc"

## TCL

# include "/usr/share/nano/tcl.nanorc"

## TeX

# include "/usr/share/nano/tex.nanorc"

## Quoted emails (under e.g. mutt)

# include "/usr/share/nano/mutt.nanorc"

## Patch files

# include "/usr/share/nano/patch.nanorc"

## Manpages

# include "/usr/share/nano/man.nanorc"

## Groff

# include "/usr/share/nano/groff.nanorc"

## Perl

# include "/usr/share/nano/perl.nanorc"

## Python

# include "/usr/share/nano/python.nanorc"

## Ruby

# include "/usr/share/nano/ruby.nanorc"

## Java

# include "/usr/share/nano/java.nanorc"

## AWK

# include "/usr/share/nano/awk.nanorc"

## Assembler

# include "/usr/share/nano/asm.nanorc"

## Bourne shell scripts

# include "/usr/share/nano/sh.nanorc"

## POV-Ray

# include "/usr/share/nano/pov.nanorc"

## XML-type files

# include "/usr/share/nano/xml.nanorc"

```

There is already a gentoo syntax file in /usr/share/nano named gentoo.nanorc that is in the long list of includes above.

----------

## bob doe

Hey guys, I took this from 2.2.4's sh.nanorc and changed a few things:

Variables within double quotes ("") have the correct colour, because they are expanded.  Within single quote ('') though, variables have the quotes colour because they arent expanded.  Any quotes within comments wont be coloured, they'll just have the comment colour.

```
## Here is an example for Bourne shell scripts.

##

syntax "bash" "\.sh$"

header "^#!.*/(ba|k|pdk)?sh[-0-9_]*"

icolor brightgreen "^[0-9A-Z_]+\(\)"

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 "-[Ldefgruwx]\>"

color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"

color brightblue "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|make|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"

color brightyellow ""(\\.|[^"])*""

icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?"

color brightyellow "'(\\.|[^'])*'"

color cyan "(^|[[:space:]])#.*$"

color ,green "[[:space:]]+$"
```

----------

## VinzC

 *eyoung100 wrote:*   

> A small pointer for all of you:
> 
> You may want to consider reading and then uncommenting
> 
> ```
> ...

 

I finally found. I had left gentoo syntax file twice in /etc/nanorc. Removing the second line enabled python syntax back  :Shocked:  . The moral of the story: beware of having the same syntax file mentioned more than once in /etc/nanorc otherwise all syntax files that are referenced between both occurrences will be disabled. In my case I had

```
include "/usr/share/nano/nanorc.nanorc"

include "/usr/share/nano/c.nanorc"

include "/usr/share/nano/gentoo.nanorc"  ## <-- first

include "/usr/share/nano/html.nanorc"

include "/usr/share/nano/patch.nanorc"

include "/usr/share/nano/perl.nanorc"

include "/usr/share/nano/python.nanorc"

include "/usr/share/nano/java.nanorc"

include "/usr/share/nano/gentoo.nanorc"  ## <-- second

include "/usr/share/nano/sh.nanorc"

include "/usr/share/nano/xml.nanorc"
```

so syntax highlighting was disabled for html, patch, perl, python and java. I just didn't happen to check any other file type but python. Bug IMHO...

----------

## ryszardzonk

With few exceptions for some configs I didn't touch nano syntaxes for quite some time and now I see number of sites have spread around dealing with that stuff. As I went ahead to go though quite a few of them I collected them in the most comprehensive archive to date. Hence I see the thread mentions my old website which changed way back at the time dyndns changed their policy I fought I'll drop a line about new site and the archive.

You can download them all from http://bigvo.hopto.org/nanosyntax.tar.bz2 or independently from http://bigvo.hopto.org/nanosyntax/nano/

- Main directory has files available in nano-2.7.4

- subdirectory extra has stuff divided depending on their use with exception of "new" where are files which I was not sure whee to put them just yet

- alternative directory list files which IMHO are prepared better than those in nano itself. Some of them actually do not differ all that much as they might have only 

```
color ,green "[[:space:]]+$"
```

 at the end to show trailing spaces.

- legacy directory has old version of the files which have better alternatives at the moment and are there only for reference

- zz_own in filetypes does not mean much besides that if I wanted to look for them I'll find them easier  :Wink: 

----------

