TIPS: Syntax Coloring i GNU NANO

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
per9000
Inlägg: 931
Blev medlem: 07 maj 2007, 11:06
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster
Ort: Västerås
Kontakt:

TIPS: Syntax Coloring i GNU NANO

Inlägg av per9000 »

Efter att fått strula lite för att få fina färger i Nano kan jag tipsa om att det är ganska enkelt.

Jag fick en exempelfil i /etc/nanorc som man kan kopiera till ~/.nanorc och sen ta bort kommentarer i för att starta saker.

Till exempel:
set smarthome
set tabsize 4
set tabstospaces
# ...
include "/usr/share/nano/python.nanorc" # om din python.nanorc ligger där dvs

En bra guide är annars http://wiki.linuxhelp.net/index.php/Nano_Syntax_Highlighting

Jag tycker nano är trevlig för att den har lite av ett gui (något jag tycker terminal-vi saknar), dessutom är den mycket snabbare att starta än terminal-emacs.

/P
--
Per Erik Strandberg
Yet Another IT Consultant
Användarvisningsbild
Bossieman
Inlägg: 2704
Blev medlem: 27 dec 2006, 23:11
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Göteborg
Kontakt:

SV: TIPS: Syntax Coloring i GNU NANO

Inlägg av Bossieman »

Ok, kan du posta din nanorc fil så jag kan copy and pasta?
*********************************************
* Detta meddelande har granskats av FRA *
*********************************************
Användarvisningsbild
per9000
Inlägg: 931
Blev medlem: 07 maj 2007, 11:06
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster
Ort: Västerås
Kontakt:

SV: TIPS: Syntax Coloring i GNU NANO

Inlägg av per9000 »

Inga problem!

Min .nanorc är kanske lite o-default, men den är baserad på ett original som hos mig bodde i /etc/nanorc .

>cat /home/per/.nanorc

Kod: Markera allt

# # Min gamla python coloring
# # Den inkluderas nu med en ny i en fil (se nedan)
# syntax "python" "\.py$"
# color brightblue "def [a-zA-Z_0-9]+"
# color brightblue "class [a-zA-Z_0-9]+"
# color brightblue "\<(self)\>"
# 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|True|False)\>"
# color brightgreen "\"\"\"*$\"\"\""
# color brightgreen "([\"']).*?[^\\]\1"
# color brightgreen "([\"]).*?[^\\]\1"
# color brightred "#.*$"

# # Saker som jag tror jag tycker är bra - till exempel
# # att tabbar blir mellanslag och att tabbar är 4 mellanslag stora
# # (autoindent är däremot dålig om man kopierar mer än en rad text 
# # från en annan fil - indenteringen bara väcer då verkar det som)
set autoindent
set nowrap
set quickblank
set smarthome
set tabsize 4
set tabstospaces
set const
unset casesensitive
set const
set cut
set suspend
set backup
set backupdir ""
set brackets ""')>]}"
set cut
set historylog

# Dessa kom med nano i separata filer - jag var bara tvungen att länka 
# till dem ex: c.nanorc betyder färg för c
include "/usr/share/nano/c.nanorc"
include "/usr/share/nano/nanorc.nanorc"
include "/usr/share/nano/html.nanorc"
include "/usr/share/nano/tex.nanorc"
include "/usr/share/nano/mutt.nanorc"
include "/usr/share/nano/patch.nanorc"
include "/usr/share/nano/man.nanorc"
include "/usr/share/nano/groff.nanorc"
include "/usr/share/nano/perl.nanorc"
include "/usr/share/nano/python.nanorc"
include "/usr/share/nano/ruby.nanorc"
include "/usr/share/nano/java.nanorc"
include "/usr/share/nano/asm.nanorc"
include "/usr/share/nano/sh.nanorc"
include "/usr/share/nano/pov.nanorc"
>cat /usr/share/nano/python.nanorc

Kod: Markera allt

## Here is an example for Python.
##
syntax "python" "\.py$"
icolor brightblue "def [0-9A-Z_]+"
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 "["'].*[^\\]["']" "["']{3}.*[^\\]["']{3}"
color brightgreen start=""""[^"]" end=""""" start="'''[^']" end="'''"
color brightred "#.*$"
>cat /usr/share/nano/c.nanorc

Kod: Markera allt

## Here is an example for C/C++.
##
syntax "c" "\.(c(c|pp|xx)?|C)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$"
color brightred "\<[A-Z_][0-9A-Z_]+\>" 
color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|(un)?signed|inline)\>"
color green "\<((s?size)|((u_?)?int(8|16|32|64|ptr)))_t\>"
color green "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>"
color brightyellow "\<(for|if|while|do|else|case|default|switch)\>"
color brightyellow "\<(try|throw|catch|operator|new|delete)\>"
color magenta "\<(goto|continue|break|return)\>"
color brightcyan "^[[:space:]]*#[[:space:]]*(define|include|(un|ifn?)def|endif|el(if|se)|if|warning|error)"
color brightmagenta "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'"
##
## GCC builtins
color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__"
##
## String highlighting.  You will in general want your comments and
## strings to come last, because syntax highlighting rules will be
## applied in the order they are read in.
color brightyellow "<[^=        ]*>" ""(\\.|[^"])*""
##
## This string is VERY resource intensive!
color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*""

## Comment highlighting
color brightblue "//.*"
color brightblue start="/\*" end="\*/"
/per
--
Per Erik Strandberg
Yet Another IT Consultant
Skriv svar

Återgå till "Terminalforum"