Forums
Less et éditeur
-
Combien de fois, cela ne vous est pas arrivé :
Vous visualisez un fichier (en ligne de commande) avec less et vous vous rendez compte que vous devez le modifier !
Généralement, vous quittez less (q) et vous ré-ouvrez le fichier avec vi (ou vim) ...
Savez vous que vous pouvez directement passer sous vi (ou un autre éditeur) en appuyant sur la touche "v" dans less ?
Vous faites vos modifications, que vous sauvegardez, et quand vous quittez l'éditeur, vous retournez directement dans less !
Pour changer l'éditeur, il suffit d'ouvrir le fichier .bashrc (ou .profile) qui est dans votre répertoire HOME et d'ajouter la commande suivante à la fin :export EDITOR="vim"
(remplacez 'vim' par votre éditeur préféré)
A signaler que par défaut, si rien n'est configurer, c'est 'vi' qui est ouvert par défaut
have fun
ericc -
pendant que j'y suis ... je viens de me rendre compte que sur ma machine Debian, le code n'était pas colorisé (syntax highlighting)
Pour activé cette fonction, c'est pourtant assez simple :
En étant root, éditez le fichier /etc/vim/vimrc (vi /etc/vim/vimrc)
recherchez les lignes suivantes:" Vim5 and later versions support syntax highlighting. Uncommenting the next " line enables syntax highlighting by default. "syntax on
mettez le curseur sur la dernière ligne ("syntax on), sur le guillemet et appuyez sur "x" pour le supprimer (le guillemet)
sauvegardez (:x)
c'est tout ...
ericc -
Un peu plus compliqué : coloriser le code dans less
Par défaut, less ne sait pas coloriser du texte, par contre il peux afficher des couleurs avec des codes (esc) (ou "raw" control characters.) avec l'option -r ou -R
Donc il faut tout d'abord installer le programme "source-highlight".aptitude install source-highlight
ousudo aptitude install source-highlight
sous Ubuntu (il va installer 2 ou 3 autres packages dépendants)
Le but de "source-highlight" est (comme son nom l'indique) de coloriser un code source. Par défaut, il produit un fichier html avec le code source tout en couleur. Mais il peux aussi généré beaucoup d'autres formats$>source-highlight --outlang-list
et en particulier ce qui nous intéresse du esc ...
docbook = docbook.outlang
esc = esc.outlang
html = html.outlang
html-css = htmlcss.outlang
htmltable = htmltable.outlang
javadoc = javadoc.outlang
latex = latex.outlang
latexcolor = latexcolor.outlang
texinfo = texinfo.outlang
xhtml = xhtml.outlang
xhtml-css = xhtmlcss.outlang
xhtmltable = xhtmltable.outlan
Pour que cela fonctionne avec less, rien de plus simple car tout est prévu !!
Dans votre .bashrc, vous ajoutez les deux lignes suivantes :export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s" export LESS=' -R '
et c'est tout !!
Maintenant quand vous faites un less d'un fichier (bash, perl, python, php, ...), le fichier est envoyé à source-highlight qui reconnait le langage du code (une centaine de langages différents reconnus), le colorise et le renvoi à less qui l'affiche
Un seul petit bémol, les couleurs utilisés ne sont pas exactement les mêmes que celles utilisés par vim dans l'astuce précédente .... mais bon, ce n'est pas trop gênant !
Have fun
ericc -
J'étais énervé parce que c'était ce qui était dit dans la documentation de less, mais que sur mes machines (Debian ou Ubuntu) par défaut c'est 'nano' qui s'ouvrait et je ne comprenais pas pourquoi !!
ericc
A signaler que par défaut, si rien n'est configurer, c'est 'vi' qui est ouvert par défaut
Quand on commence à se familiarisé à 'vi', c'est chiant d'utiliser 'nano' que je trouve assez peu convivial ou pratique (ce n'est qu'un avis personnel!)
Jusqu'à ce que je me souvienne que Debian (et ses dérivés) utilise une fonction "alternative".
Quand vous avez plusieurs programmes qui font la même chose installés sur votre machine, vous pouvez choisir quel sera votre programme par défaut. et ensuite celui ci sera utilisé par tout le système.
Par exemple, si vous avez plusieurs versions de gcc (le compilateur C) sur votre machine (sur la mienne gcc-4.4 gcc-4.5 gcc-4.6)
Dans notre cas, l'alternatif utilise "editor"
Si vous allez dans le répertoire "/etc/alternatives" et que vous faites un "ls -l" vous verrez que "editor" est un lien vers 'nano'
NE CHANGEZ PAS CE LIEN MANUELLEMENT !!!!
Pour manipuler ces alternatives, il y a une commande (qui est assez souvent utiliser quand vous mettez à jour des packages, si vous regardez ce que se passe dans la console) :
update-alternatives
Si vous tapez:$> update-alternatives --display editor
vous aurez la liste des choix sur votre machineeditor - auto mode link currently points to /bin/nano /bin/nano - priority 40 slave editor.1.gz: /usr/share/man/man1/nano.1.gz /usr/bin/vim.basic - priority 30 slave editor.1.gz: /usr/share/man/man1/vim.1.gz slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz /usr/bin/vim.tiny - priority 10 slave editor.1.gz: /usr/share/man/man1/vim.1.gz slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz Current 'best' version is '/bin/nano'.
Comme vous le voyez, je suis en mode "auto", c'est à dire que c'est la machine qui décide en fonction des priorités ... et comme 'nano' à la plus haute priorité, c'est lui qui est choisi par défaut
Pour changer, facile !!
vous devez être root (ou utiliser 'sudo' sous Ubuntu)$>update-alternatives --config editor There are 3 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/nano 40 manual mode 2 /usr/bin/vim.basic 30 manual mode 3 /usr/bin/vim.tiny 10 manual mode Press enter to keep the current choice[*], or type selection number: 2 update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode.
et voila, c'est tout
Maintenant, tout les programmes qui appellent un éditeur par défaut (comme less) appelleront 'vim'
Have fun
ericc