Re: Buscando un editor de texto para consola
El dom, 06-03-2005 a las 22:34 +0100, Iñaki escribió:
> Hola, estoy buscando un editor de texto normalito para consola que tenga un
> funcionamiento similar a cualquier editor gráfico (kedit, kwrite...). En
> definitiva, busco algún editor que tenga estas características:
>
> - Que se pueda seleccionar texto apretando "Mayúsculas" + "Izq" ó "Dcha".
> - Que permita copiar y pegar con "Ctrl+Insert" y "Mayúsculas+Insert"
> respectivamente.
> - Que no esté basado en Vi, por favor, a ser posible que para guardar se pulse
> "Ctrl+S" y para salir "Ctrl+Q" o algo similar, nada de entrar en "modo
> comandos" ni demás peripecias.
>
> Como veis todas estas características son las que tiene la edición de texto en
> cualquier sistema gráfico (KDE, Gnome, Windows...), y pretendo usar un editor
> en modo consola que no me haga aprender un funcionamiento completamente
> distinto.
>
> En concreto Vi me echa para atrás, alguna vez que lo he usado después de mucho
> tiempo me ocurre que no me acuerdo del comando para salir sin salvar el
> archivo y me tiro 5 minutos hasta que doy con él, no me gusta.
>
> También he probado Nano, aunque no consigo que muestre colores y además tiene
> un scroll muy malo, pues avanza por bloques de líneas en vez de línea a
> línea, con lo que se hace a veces difícil seguir el texto.
>
Si todavía te gusta nano las dos cosas que te fallan tienen solución.
Scroll suave: editas /etc/nanorc y buscas:
## Use smooth scrolling as the default
set smooth
si la tienes comentada la descomentas
En cuanto a los colores hay muchas webs con el archivo nanorc, yo lo saque de una de gentoo.
Lo mando adjunto, haz una copia de tu /etc/nanorc y sobreescribes el que hay de la forma:
cat /home/xxx/nanorc > /etc/nanorc
Suelo usar nano en consolas dentro de las X por lo que para copiar pegar uso Ctrl + May + C/V
UN editor ligero en las X me gusta mucho leafpad (parecido al notepad de
win) creo que está en los repositorios del xfce42.
> Acabo de probar muchos de los editores que me salen con un "apt-cache search
> text editor", y de momento me quedo con mped, que aunque no reúne ninguna de
> las características que busco, no está basado en Vi y tiene buen scroll.
>
> ¿Alguien sabe de algún editor de las características que busco para consola?
>
> PD: Quería probar emacs21 pero me dice que tiene que descargar 31MB, casi me
> da un ataque de risa, me niego. Además no creo que sea lo que busco.
>
> Muchas gracias.
>
>
>
--
mario <debian@estilorural.com>
# Colors optimised for _black_ background
#
## Sample initialization file for GNU nano
## Please note that you must have configured nano with --enable-nanorc
## for this file to be read! Also note that characters specially
## interpreted by the shell should not be escaped here.
##
## To make sure a value is not enabled, use "unset <option>"
##
## For the options that take parameters, the default value is given.
## Other options are unset by default.
## Use auto-indentation
# set autoindent
## Backup files to filename~
# set backup
## The directory to put the backup files in.
# set backupdir ""
## 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
## 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 "(> )+"
## Fix Backspace/Delete confusion problem
# set rebinddelete
## 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
## Use this tab char instead of the default space; it can either be the
## ascii value of the character you wish to see (refer to ascii(7)) or
## it can be a single character. 187 seems to be a 'good' value.
# set tabconvert 32
## Same as tabconverting above, but applied to spaces.
## it can be a single character. 183 seems to be a 'good' value.
# set spaceconvert 32
## Finally, you can toggle whitespace converting with this
# set wsconvert
## 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 brightmagenta "\<(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 brightblue "<[^= ]*>" ""(\\.|[^\"])*""
##
## 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="\*/"
##########################################################################
##########################################################################
#
#
# 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
#
#
###########################################################################
### all *cf files (e.g. main.cf, Postfix )
syntax "maincf" "(\.|/|)cf$"
color magenta "\=.*$"
color brightblue "#.*$"
color cyan "[A-Z0-9\_]+="
color green ""(\\.|[^\"])*""
color red "\@"
### all *rc files ( e.g. .bashrc, inputrc, xtermcontrol .... )
syntax "rcfiles" "\rc$" "(\.|/|)control$"
color red "'(\\.|[^'])*'"
color green ""(\\.|[^\"])*""
color magenta "[A-Z0-9\_]+="
color magenta "\<(sudo)\>"
color cyan "\<(alias)\>"
color brightcyan "\<(export)\>"
color yellow "\<(shopt)\>"
color brightred "\<(umask)\>.*$"
color brightblue "#.*$"
### all *profile files ( ~/.bash_profile, /etc/profile)
syntax "profiles" "(\.|/|)profile$"
color red "'(\\.|[^'])*'"
color green ""(\\.|[^\"])*""
color magenta "[a-zA-Z0-9\_]+="
color magenta "\<(sudo)\>"
color cyan "\<(export)\>" "\<(alias)\>"
color brightred "\<(umask)\>.*$"
color brightblue "#.*$"
### all *js files ( e.g. Firefox user.js, prefs.js )
syntax "jsfiles" "(\.|/|)js$"
color brightblue "//.*$" start="\/\*" end="\*\/"
color green "'(\\.|[^'])*'"
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 green "<(\\.|[^'])*>"
color magenta "[a-zA-Z0-9\_]+="
color white ">(\\.|[^'><])*</"
color brightblue "//.*$"
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,brightblue "^.*-->" start="<!--.*" end="$"
color brightblue "#.*$" start="<!--" end="-->"
## Xdefaults
syntax "Xdefaults" "(\.|/|)default.$" "(\.|/|)resource.$" "fonts.alias"
color magenta "XTerm"
color cyan "Rxvt"
color white "\*(\\.|[^'])*\:"
color brightgreen "\<(true)\>"
color brightred "\<(false)\>"
color brightwhite "[0-9]"
color brightblue "!.*$" "#.*$"
### several config files
syntax "config" "(\.|/|)config$" "(\.|/|)logout$" "(\.|/|)COLORS$" "(\.|/|)colors$"
color red "/.*$" "TERM" "\..*$" "=.*$" "\*.*$"
color white ":unscaled" "[0-9]"
color green "setenv|export" "\;"
color brightblue "#.*$"
### more config files
syntax "config2" "(\.|/|)env$" "(\.|/|)server.$" "hosts" "gpm" "local.*$" "bootsplash" "crypto-loop"
color red "/.*$" "http\:\/\/.*$"
color white ":unscaled"
color green "setenv|export"
color brightwhite "[0-9]"
color brightblue "#.*$"
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 green "setenv|export"
color brightwhite "[0-9]"
color brightblue "#.*$"
### all *tab files ( e.g. fstab, crontab, inittab )
syntax "fstab" "(\.|/|)tab$"
color magenta "\<(none)\>.*$" "\<(wait)\>" "\<(respawn)\>"
color red "/dev/hd.*$" "\<(ctrlaltdel)\>" "\<(initdefault)\>"
color green "/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 brightblue "#.*$"
### /etc/group, etc/passwd
syntax "passwd" "(\.|/|)group$" "(\.|/|)passwd$" "(\.|/|)shadow$"
color white ".*$"
color brightblue "\:.*$"
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 green "\-(\\.|[^'])*\:"
color yellow "\/(\\.|[^'])*\:"
color red "x86" "http\:\/\/.*$"
color brightred "\!\!(\\.|[^'])*\!\!" "DO NOT SET THIS FLAG YOURSELF!"
color brightblue "#.*$"
##########################################################################
##########################################################################
## Here is a short example for HTML
syntax "HTML" "\.html$"
color brightblue start="<" end=">"
color red "&[^; ]*;"
## 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|decalre|require_once|require|include_once|include|return)([^A-Za-z0-9])"
#types
color brightgreen "([^A-Za-z0-9])|(null|int|string|array|float|bool|object|resource)[^A-Za-z0-9]"
#functions (Ack! - Too many!)
color magenta "([^A-Za-z0-9])|(setcookie|base64_encode|base64_decode|serialize|unserialize|sprintf|rmdir|move_uploaded_file|readdir|chdir|closedir|getcwd|shuffle|strpos|array_reverse|rsort|arsort|array_search|array_merge|array_slice|strnatcasecmp|strtolower|strtoupper|round|ceil|floor|filetype|fileowner|filegroup|fileperms|filesize|fileatime|filemtime|array_push|array_pop|is_dir|realpath|sort|usort|substr_count|file_get_contents|in_array|chr|opendir|substr|mktime|getdata|date|fopen|fwrite|fread|fclose|sizeof|nl2br|str_replace|strstr|preg_match_all|preg_replace|preg_match|preg_split|basename|file_exists|copy|isset|time|unlink|session_start|trim|rtrim|md5|echo|print|printf|explode|implode|array|split|join|stripslashes|addslashes|die|function|mysql_error|mysql_connect|mysql_select_db|mysql_close|mysql_query)([^A-Za-z0-9])*"
#Etc global command ;) (added by ObsidianX)
color brightblue "([^A-Za-z0-9])|(global|if|else)([^A-Za-z0-9])*"
#Variables
color brightcyan "\$[A-Za-z0-9_\>-]*"
#strings
color brightmagenta ""(\\.|[^\"])*""
color brightmagenta "'(\\.|[^\'])*'"
#color brightyellow start=""(\\.|[^\"])*\\( | )*$" end="^(\\.|[^\"])*""
#color brightblue start="\".*" end=".*\""
#comments
color brightred "//.*"
color brightred "#.*"
color brightred start="/\*" end="\*/"
## Here is a short example for TeX files
syntax "TeX" "\.tex$"
color green "\\.|\\[A-Za-z]*"
color magenta "[{}]"
color brightblue "%.*"
## Here is an example for quoted emails (under e.g. mutt)
syntax "mutt"
color red "^>.*"
color red "((ftp|http|https)://|(file|mailto|news):|www\\.)[-a-z0-9_.:]*[a-z0-9](/[^][{} \t\n\r\"<>()]*[^][{} \t\n\r\"<>().,:!])?/?"
## 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 cyan "^\.\\\".*$"
## 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 brightblue "".*"|qq\|.*\|"
color white "[sm]/.*/"
color white start="(^use| = new)" end=";"
color green "#.*"
color cyan 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 magenta "\<(true|false|null)\>"
color brightblue "//.*"
color brightblue start="/\*" end="\*/"
color brightblue start="/\*\*" end="\*/"
color brightgreen,green " +$"
## Here is an example to color your .nanorc
##
syntax "nanorc" "(\.|/|)nanorc"
## highlight possible errors and parameters
color brightcyan "^ *(set|unset|syntax|color).*$"
## set, unset and syntax
color cyan "^ *(set|unset) +(autoindent|backup|const|cut|fill|historylog|multibuffer|noconvert|nofollow|nohelp|nowrap|operatingdir|preserve|quotestr|rebinddelete|regexp|smooth|speller|suspend|tabsize|tempfile|view)"
color green "^ *(set|unset|syntax)\>"
## colors
color red "^ *color +(bright)?(white|black|red|blue|green|yellow|magenta|cyan)(,(white|black|red|blue|green|yellow|magenta|cyan))?\>"
color magenta "^ *color\>" "\<(start|end)="
## strings
color white "\"(\\.|[^\"])*\""
## comments
color brightblue "^ *#.*$"
## Here is an example for ebuilds/eclasses
##
syntax "ebuild" "\.e(build|class)$"
## All the standard portage functions
color brightgreen "^src_(unpack|compile|install|test)" "^pkg_(config|nofetch|setup|(pre|post)(inst|rm))"
## Highlight bash related syntax
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)\>"
## Highlight variables ... official portage ones in red, all others in bright red
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)\>"
color red "\<(S|D|T|PV|PF|P|PN|A)\>" "\<C(XX)?FLAGS\>" "\<LDFLAGS\>"
## Highlight portage commands
color magenta "\<use(_(with|enable))?\> [!a-z0-9X -]*" "inherit.*"
color white "e(begin|end|conf|install|make|warn|infon?|error|patch)"
color white "\<die\>" "\<use(_(with|enable))?\>" "\<inherit\>" "\<has\>" "\<(has|best)_version\>" "\<unpack\>"
color white "\<(do|new)(ins|s?bin|doc|lib(|\.so|\.a)|man|info|exe)\>"
color white "\<do(python|sed|dir|hard|sym|html|jar|mo)\>" "\<keepdir\>"
color white "prepall(|docs|info|man|strip)" "prep(info|lib|lib\.so|man|strip)"
color white "\<(|doc|ins|exe)into\>" "\<f(owners|perms)\>" "\<(exe|ins|dir)opts\>"
## Highlight common commands used in ebuilds
color magenta "\<make\>" "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|let|ln|mkdir|mv|rm|sed|set|tar|touch|unset)\>"
## Highlight comments (doesnt work that well)
color brightblue "#.*$"
## Highlight strings (doesnt work that well)
# color brightyellow ""(\\.|[^\"])*"" "'(\\.|[^'])*'"
## manpages
#
syntax "manpage" "\.[1-9]$"
color green "\.(S|T)H.*$"
color brightgreen "\.(S|T)H" "\.TP"
color brightred "\.(BR?|IP?).*$"
color brightblue "\.(BR?|IP?|PP)"
color brightwhite start="\\fI" end="\\fR"
color brightwhite start="\\fB" end="\\fR"
color yellow "\.(br|DS|RS|RE|PD)"
## Here is an example for patch files
##
syntax "patch" "\.(patch|diff)$"
color brightgreen "^\+.*"
color green "^\+\+\+.*"
color brightblue "^ .*"
color brightred "^-.*"
color red "^---.*"
color brightcyan "^@@.*"
color magenta "^diff.*"
## Here is an example for shell scripts
##
syntax "shellscript" "\.sh$" "Xsession" "Xwilling" "(\.|/|)completion$"
color magenta "^[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 cyan "\<make\>" "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
color red "\$\{?[a-zA-Z_0-9]+\}?"
color brightblue "#.*$"
color brightwhite ""(\\.|[^\"])*"" "'(\\.|[^'])*'"
Reply to: