Aller au contenu | Aller au menu | Aller à la recherche

Tag - shell

Fil des billets

mercredi, février 18 2009

L'editeur GNU Nano et la coloration syntaxique dispo dans /etc/nanorc

Et oui l'editeur de texte simple qu'est Nano permet de faire aussi bien que les grands ! C'est vrai qu'au premier abord on croit que mettre un peu de couleurs dans nano n'est pas possible, et vu que cela n'est pas activé par défaut cela renforce encore notre première impression. En fait la coloration syntaxique bien que désactivée par défaut et bel et bien disponible dans Nano.

Activation de la coloration syntaxique (highlighting syntax)

Pour l'activer un petit tour dans le /etc/nanorc Ainsi on voit les lignes suivantes qui faut décommenter suivant les besoins.

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

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

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

Ajout de différents types de colorations

Tous les types de fichiers ne sont pas dispo par défaut dans le fichier de config (cela dépend de votre distro). Pour en rajouter vous pouvez prendre cette archive . Il suffit de placer le contenu dans /usr/share/nano/

Utilisez une coloration existante pour un autre type de fichier

Vous pouvez ajouter aussi des extensions dans les types de fichiers existant. Par exemple je veux avoir la même coloration pour les .conf que pour les .sh, il suffit d'éditer le fichier /usr/share/nano/sh.nanorc comme suit:

## Here is an example for Bourne shell scripts.
##
syntax "sh" "\.sh$" "\.conf$"
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)\"
icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?"
color cyan "(^|[[:space:]])#.*$"
color brightblue "^;.*$"
color brightyellow ""(\.|[^"])*"" "'(\.|[^'])*'"
color ,green "[[:space:]]+$"

Autres utilisations possibles

Vous pouvez aussi ajouter la coloration uniquement pour vous en rajoutant un fichier .nanorc dans votre home.

Ici quelques codes de colorations et la syntaxe

vendredi, mai 16 2008

Bash pageup and down dans history & .bashrc

Recherche des mots dans l'history avec pageup et pagedown

Editer le fichier /etc/inputrc

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\eO5C": forward-word
"\eO5D": backward-word

Retrouver les keymap

Pour retrouver le raccourci dans un shell faites CTRL-V et tappez le raccourci souhaitez. Exemple sous fedora CTRL+left arrow donne "^[O5D", il faut remplacer le "^[" par "\e" ce qui donne "\eO5D".

Autre solution, au lieu de modifier le /etc/inputrc, on peut utiliser bind dans le .bashrc

bind '"\e[5~":history-search-backward' bind '"\e[6~":history-search-forward'

Autres choses interessantes

  1. completion cyclique

bind '"²":menu-complete'

  1. montrer les possibilités si choix ambigu dans la completion

bind "set show-all-if-ambiguous on"

  1. ignorer la casse pour la completion

bind "set completion-ignore-case on"

.bashrc example

#aliases
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
#alias grep='grep --color'
export GREP_OPTIONS='--color=auto'

#environment
PS1='\[\033[01;34m\]\t \[\033[01;32m\]\u@\h \[\033[01;34m\]\w \$ \[\033[00m\]'
EDITOR="/usr/bin/nano"
VISUAL="/usr/bin/nano"

#history
bind '"\e[5~":history-search-backward'
bind '"\e[6~":history-search-forward'

#completion cyclique
bind '"²":menu-complete'
#montrer les possibilités si choix ambigu dans la completion
bind "set show-all-if-ambiguous on"
#ignorer la casse pour la completion
bind "set completion-ignore-case on"

#calculatrice
calc(){ awk "BEGIN{ print $* }" ;}

Ensuite

source .bashrc

Autre truc interessant à mettre dans le .bashrc pour les chmod :

  1. chmod all files/directory

alias chmodd=’find . -type d -exec chmod 711 {} \;’ alias chmodf=’find . -type f -exec chmod 755 {} \;’

Locale en UTF-8 pour l'utilisateur courant

export lang=fr_FR.utf8 export LANG=fr_FR.utf8 export LANGUAGE=fr_FR.utf8 export LC_ADDRESS=fr_FR.utf8 export LC_ALL=fr_FR.utf8 export LC_COLLATE=fr_FR.utf8 export LC_IDENTIFICATION=fr_FR.utf8 export LC_MESSAGES=fr_FR.utf8 export LC_MEASUREMENT=fr_FR.utf8 export LC_MONETARY=fr_FR.utf8 export LC_NAME=fr_FR.utf8 export LC_NUMERIC=fr_FR.utf8 export LC_PAPER=fr_FR.utf8 export LC_TELEPHONE=fr_FR.utf8 export LC_TIME=fr_FR.utf8 export LC_TYPE=fr_FR.utf8

Et voilà!