<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://planet.ubuntu-fr.org/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Planet Ubuntu Francophone - Vim</title>
  <link>http://planet.ubuntu-fr.org/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Fri, 05 Dec 2008 05:26:50 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Changement de l'éditeur de texte par défaut</title>
    <link>http://www.respawner.fr/blog/index.php?post/2008/10/17/Changement-de-l-editeur-de-texte-par-defaut</link>
    <guid isPermaLink="false">urn:md5:533ef075f6ba0c7fcbf69d08df81c2f8</guid>
    <pubDate>Fri, 17 Oct 2008 14:28:00 +0200</pubDate>
    <dc:creator>Respawner</dc:creator>
        <category>PUF</category>
        <category>Accueil</category><category>Cli</category><category>Editeur</category><category>Libre</category><category>Linux</category><category>Ubuntu</category><category>Vim</category>    
    <description>    &lt;p&gt;Les utilisateurs réguliers du terminal le savent bien existent plusieurs éditeurs de texte en ligne de commande. Parmis les plus populaires, on a Nano, VI, ou encore VIM (VI Improved). Chacun à ses qualités et défauts qui à mon avis ne tiennent plus de l&amp;#8217;utilisateur et de ses habitudes que de l&amp;#8217;éditeur lui même (on évitera ainsi tout troll du genre VI c&amp;#8217;est le mal, Emacs c&amp;#8217;est bien, etc &amp;#8230;). Lors de l&amp;#8217;utilisation d&amp;#8217;un terminal, un éditeur de texte par défaut est attribué (généralement c&amp;#8217;est Nano). Ainsi lorsque l&amp;#8217;on lance une commande d&amp;#8217;édition d&amp;#8217;un fichier, &lt;code&gt;crontab -e&lt;/code&gt;, par exemple, le fichier contenant les tâches cron sera automatiquement ouvert avec Nano. Personnellement, cet éditeur n&amp;#8217;a jamais été à mon goût et je lui préfère VIM. Ainsi pour changer l&amp;#8217;éditeur appelé lors de l&amp;#8217;ouverture d&amp;#8217;un fichier, on utilise la commande suivante.&lt;br /&gt;&lt;code&gt;~$ sudo update-alternatives --config editor&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;On obtient alors le choix entre plusieurs outils et il ne suffit qu&amp;#8217;à choisir le bon en entrant son numéro et de valider avec la touche &lt;em&gt;Entrée&lt;/em&gt;. Pour garder, l&amp;#8217;éditeur par défaut, on appuie simplement sur &lt;em&gt;Entrée&lt;/em&gt; sans rien toucher avant. Et enfin, il ne reste plus qu&amp;#8217;à l&amp;#8217;utiliser.&lt;br /&gt;&lt;a href=&quot;http://www.respawner.fr/respawner/public/Divers/EditorSelection.png&quot;&gt;&lt;img title=&quot;EditorSelection.png, oct 2008&quot; style=&quot;margin: 0 auto; display: block;&quot; alt=&quot;&quot; src=&quot;http://www.respawner.fr/respawner/public/Divers/.EditorSelection_m.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Vim : mon vimrc personnalisé, pour mieux profiter de cet éditeur avancé !</title>
    <link>http://achraf.cherti.name/blog/2008/09/01/vim-vimrc-gvimrc-personnalise-editeur-avance-programmation-correction-orthographique-orthographe-raccourcis-utiles-clavier-backup/</link>
    <guid isPermaLink="false">urn:md5:e3c595f01af3ca5d65eac1d0c6ac9f57</guid>
    <pubDate>Mon, 01 Sep 2008 13:55:59 +0200</pubDate>
    <dc:creator>Asher256</dc:creator>
        <category>PUF</category>
        <category>Accueil</category><category>Linux</category><category>Planet-libre</category><category>Planet-ubuntu</category><category>Programmation</category><category>Script</category><category>Vim</category>    
    <description>    &lt;p&gt;&lt;img class=&quot;aligncenter&quot; src=&quot;http://achraf.cherti.name/blog/images/text-editor.png&quot; alt=&quot;Vim / gVim, éditeur texte, une icône&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vim&lt;/strong&gt; a depuis assez longtemps été mon éditeur de texte préféré !&lt;/p&gt;
&lt;p&gt;C'est un peu mon &lt;strong&gt;couteau suisse&lt;/strong&gt; de l'&lt;strong&gt;édition de texte&lt;/strong&gt;. Je l'utilise pour &lt;strong&gt;rédiger mes notes&lt;/strong&gt;, modifier les &lt;strong&gt;fichiers de configuration&lt;/strong&gt; de mes &lt;strong&gt;serveurs distants&lt;/strong&gt; ou programmer (&lt;a href=&quot;http://gshutdown.tuxfamily.org/&quot;&gt;GShutdown&lt;/a&gt; ou &lt;a href=&quot;http://jargon.tuxfamily.org/&quot;&gt;Jargon Informatique&lt;/a&gt; ont été entièrement écrits avec cet éditeur !).&lt;/p&gt;
&lt;p&gt;Les aspects qui m'ont toujours séduits dans cet éditeur c'est son côté geek, avec ses centaines de fonctions permettant de faire tout et n'importe quoi, et son extensibilité (j'en parlerai dans un autre billet, pour vous faire découvrir les plugins à ne pas rater), grâce aux plugins.&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Une des choses légèrement ennuyantes avec Vim, quand on débute, c'est qu'il n'est pas par défaut configuré pour qu'on profite de toutes ses jolies fonctionnalités ; qui devraient pourant être activées d'office ! C'est pour cette raison que, avec le temps, j'ai créé puis amélioré mon &lt;strong&gt;vimrc&lt;/strong&gt;, pour que Vim me permette de mieux travailler.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Pour vous faire gagner du temps, j'ai décidé de mettre en ligne mon vimrc, pour que tout intéressé puisse l'étudier, l'utiliser, le modifier, etc. et pourquoi pas proposer des améliorations !&lt;/p&gt;
&lt;p&gt;Grâce au Vimrc disponible ci-dessous, vous profiterez des avantages suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Des backups automatiques dans le répertoire ~/.vim/backup (pour ne pas encombrer vos répertoires de fichiers de sauvegarde finissant avec ~ par exemple)&lt;/li&gt;
&lt;li&gt;Une indentation activée automatiquement lorsque vous éditerez un code source. Idem pour la colorisation syntaxique.&lt;/li&gt;
&lt;li&gt;Quand vous chercherez dans votre texte avec un mot-clé, ce mot-clé se voit attribué une couleur de fond.&lt;/li&gt;
&lt;li&gt;Les fichiers avec les extensions *.o, *.dll, *.so et *.a sont ignorés, quand vous utilisez l'astérisque (gain de temps pour sélectionner le fichier qui vous intéresse).&lt;/li&gt;
&lt;li&gt;Quand vous utilisez l'astérisque et le bouton tab, pour sélectionner un fichier par exemple, un menu horizontal apparaît dans la barre des status, permettant de mieux sélectionner les fichiers.&lt;/li&gt;
&lt;li&gt;Les PDFs sont lus d'une manière transparente, en utilisant pdftotext (logiciel à installer)&lt;/li&gt;
&lt;li&gt;Des raccourcis claviers utiles sont ajoutés, comme &quot;,lf&quot;, pour avoir la correction orthographique en français, &quot;,le&quot;, pour avoir celle en anglais, &quot;,ln&quot; pour désactiver la correction orthographique, &quot;,t&quot; pour ouvrir un nouvel onglet, &quot;,w&quot; pour le fermer, &quot;,m&quot; pour cacher le menu de gvim, ctrl-a pour tout sélectionner, ctrl-c pour copier et ctrl-p pour coller et &quot;,h&quot; pour convertir un code source colorié en &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt;.&lt;/li&gt;
&lt;li&gt;Et bien d'autres options, que je vous invite à découvrir dans le script (que j'ai commenté pour vous rendre sa compréhension plus facile. Néanmoins, à la moindre lacune, n'hésitez pas à passer par l'aide de vim &quot;:help&quot; ou à poster un commentaire !)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour installer le script Sous &lt;acronym title=&quot;GNU is Not UNIX&quot;&gt;GNU&lt;/acronym&gt;/Linux, mettez son contenu dans le fichier &quot;~/.vimrc&quot;.&lt;/p&gt;
&lt;p&gt;Le vimrc personnalisé (qui est aussi &lt;a title=&quot;Vimrc d'Achraf Cherti (Asher256)&quot; href=&quot;http://achraf.cherti.name/blog/mes-fichiers/programmes/vimrc_asher256.vim&quot;&gt;disponible en téléchargement&lt;/a&gt;) :&lt;/p&gt;
&lt;div&gt;scriptencoding utf-8&lt;br /&gt;
&quot;=============================================================================&lt;br /&gt;
&quot;&lt;br /&gt;
&quot; Fichier de configuration VIM personnalisé (meilleur pour la programmation,&lt;br /&gt;
&quot; raccourcis clavier utiles, etc. pour mieux profiter de cet excellent&lt;br /&gt;
&quot; éditeur).&lt;br /&gt;
&quot;&lt;br /&gt;
&quot; Auteur : Achraf cherti (aka Asher256)&lt;br /&gt;
&quot; Email &amp;nbsp;: achraf at cherti dot name&lt;br /&gt;
&quot;&lt;br /&gt;
&quot; Licence : &lt;acronym title=&quot;GNU General Public License&quot;&gt;GPL&lt;/acronym&gt;&lt;br /&gt;
&quot;&lt;br /&gt;
&quot; Site: http://achraf.cherti.name/&lt;br /&gt;
&quot;&lt;br /&gt;
&quot;=============================================================================&lt;/p&gt;
&lt;p&gt;&quot; Options {{{1&lt;/p&gt;
&lt;p&gt;&quot; Options Internes {{{2&lt;/p&gt;
&lt;p&gt;&quot; Mode non compatible avec Vi&lt;br /&gt;
set nocompatible &lt;/p&gt;
&lt;p&gt;&quot; Le backspace&lt;br /&gt;
set backspace=indent,eol,start&lt;/p&gt;
&lt;p&gt;&quot; Activer la sauvegarde&lt;br /&gt;
set backup&lt;/p&gt;
&lt;p&gt;&quot; un historique raisonnable&lt;br /&gt;
set history=100&lt;/p&gt;
&lt;p&gt;&quot; undo, pour revenir en arrière&lt;br /&gt;
set undolevels=150&lt;/p&gt;
&lt;p&gt;&quot; Suffixes à cacher&lt;br /&gt;
set suffixes=.jpg,.png,.jpeg,.gif,.bak,~,.swp,.swo,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc,.pyc,.pyo&lt;/p&gt;
&lt;p&gt;&quot; Backup dans ~/.vim/backup&lt;br /&gt;
if filewritable(expand(&quot;~/.vim/backup&quot;)) == 2&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &quot; comme le répertoire est accessible en écriture,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &quot; on va l'utiliser.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; set backupdir=$HOME/.vim/backup&lt;br /&gt;
else&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if has(&quot;unix&quot;) || has(&quot;win32unix&quot;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot; C'est c'est un système compatible UNIX, on&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot; va créer le répertoire et l'utiliser.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; call system(&quot;mkdir $HOME/.vim/backup -p&quot;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; set backupdir=$HOME/.vim/backup&lt;br /&gt;
&amp;nbsp; &amp;nbsp; endif&lt;br /&gt;
endif&lt;/p&gt;
&lt;p&gt;&quot; Inclusion d'un autre fichier avec des options&lt;br /&gt;
if filereadable(expand(&quot;~/.vimrc_local.vim&quot;))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; source ~/.vimrc_local.vim&lt;br /&gt;
endif&lt;/p&gt;
&lt;p&gt;&quot; Activation de la syntaxe&lt;br /&gt;
if has(&quot;syntax&quot;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; syntax on&lt;br /&gt;
endif&lt;/p&gt;
&lt;p&gt;&quot; Quand un fichier est changé en dehors de Vim, il est relu automatiquement&lt;br /&gt;
set autoread&lt;/p&gt;
&lt;p&gt;&quot; Aucun son ou affichage lors des erreurs&lt;br /&gt;
set errorbells&lt;br /&gt;
set novisualbell&lt;br /&gt;
set t_vb=&lt;/p&gt;
&lt;p&gt;&quot; Quand une fermeture de parenthèse est entrée par l'utilisateur,&lt;br /&gt;
&quot; l'éditeur saute rapidement vers l'ouverture pour montrer où se&lt;br /&gt;
&quot; trouve l'autre parenthèse. Cette fonction active aussi un petit&lt;br /&gt;
&quot; beep quand une erreur se trouve dans la syntaxe.&lt;br /&gt;
set showmatch&lt;br /&gt;
set matchtime=2&lt;/p&gt;
&lt;p&gt;&quot; Afficher la barre d'état&lt;br /&gt;
set laststatus=2&lt;/p&gt;
&lt;p&gt;&quot; }}}2&lt;/p&gt;
&lt;p&gt;&quot; Options de recherche {{{2 &lt;/p&gt;
&lt;p&gt;&quot; Tout ce qui concerne la recherche. Incrémentale&lt;br /&gt;
&quot; avec un highlight. Elle prend en compte la&lt;br /&gt;
&quot; différence entre majuscule/minuscule.&lt;br /&gt;
set incsearch&lt;br /&gt;
set noignorecase&lt;br /&gt;
set infercase&lt;/p&gt;
&lt;p&gt;&quot; Quand la rechercher atteint la fin du fichier, pas&lt;br /&gt;
&quot; la peine de la refaire depuis le début du fichier&lt;br /&gt;
set hlsearch&lt;/p&gt;
&lt;p&gt;&quot; }}}2&lt;/p&gt;
&lt;p&gt;&quot; Options d'affichage texte {{{2&lt;/p&gt;
&lt;p&gt;&quot; Ne pas nous afficher un message quand on enregistre un readonly&lt;br /&gt;
set writeany&lt;/p&gt;
&lt;p&gt;&quot; Afficher les commandes incomplètes&lt;br /&gt;
set showcmd&lt;/p&gt;
&lt;p&gt;&quot; Afficher la position du curseur&lt;br /&gt;
set ruler&lt;/p&gt;
&lt;p&gt;&quot; Désactiver le wrapping&lt;br /&gt;
set nowrap&lt;/p&gt;
&lt;p&gt;&quot; Options folding&lt;br /&gt;
set foldmethod=marker&lt;/p&gt;
&lt;p&gt;&quot; Un petit menu qui permet d'afficher la liste des éléments&lt;br /&gt;
&quot; filtrés avec un wildcard&lt;br /&gt;
set wildmenu&lt;br /&gt;
set wildignore=*.o,*#,*~,*.dll,*.so,*.a&lt;br /&gt;
set wildmode=full&lt;/p&gt;
&lt;p&gt;&quot; Format the statusline&lt;br /&gt;
set statusline=%F%m\ %r\ Line:%l\/%L,%c\ %p%%&lt;/p&gt;
&lt;p&gt;&quot; }}}2&lt;/p&gt;
&lt;p&gt;&quot; Options d'affichage &lt;acronym title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/acronym&gt; {{{2&lt;/p&gt;
&lt;p&gt;&quot; Configuration de la souris en mode console&lt;br /&gt;
&quot; =&quot;&quot; pas de souris par défaut&lt;br /&gt;
&quot;set mouse=a&lt;/p&gt;
&lt;p&gt;&quot; Améliore l'affichage en disant à vim que nous utilisons un terminal rapide&lt;br /&gt;
set ttyfast&lt;/p&gt;
&lt;p&gt;&quot; Lazy redraw permet de ne pas mettre à jour l'écran&lt;br /&gt;
&quot; quand un script vim est entrain de faire une opération&lt;br /&gt;
set lazyredraw&lt;/p&gt;
&lt;p&gt;if has(&quot;gui_running&quot;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; map &amp;lt;S-Insert&amp;gt; &amp;lt;MiddleMouse&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; map &amp;lt;S-Insert&amp;gt; &amp;lt;MiddleMouse&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; set mousehide &quot; On cache la souris en mode gui&lt;br /&gt;
&amp;nbsp; &amp;nbsp; set ch=2 &quot; ligne de commande dans deux ligne&lt;br /&gt;
endif&lt;/p&gt;
&lt;p&gt;&quot; }}}2&lt;/p&gt;
&lt;p&gt;&quot; Noms des fichiers {{{2&lt;/p&gt;
&lt;p&gt;&quot; faire en sorte que le raccourci CTRL-X-F&lt;br /&gt;
&quot; marche même quand le fichier est après&lt;br /&gt;
&quot; le caractère égal. Comme :&lt;br /&gt;
&quot; variable=/etc/&amp;lt;C-XF&amp;gt;&lt;br /&gt;
set isfname-==&lt;/p&gt;
&lt;p&gt;&quot; }}}2&lt;/p&gt;
&lt;p&gt;&quot; }}}1&lt;/p&gt;
&lt;p&gt;&quot; Autocmd {{{1&lt;/p&gt;
&lt;p&gt;set cindent&lt;br /&gt;
&quot;set autoindent&lt;br /&gt;
&quot;set smartindent&lt;/p&gt;
&lt;p&gt;if has(&quot;autocmd&quot;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &quot; Détection auto du format&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &quot; + activer indent&lt;br /&gt;
&amp;nbsp; &amp;nbsp; filetype plugin indent on&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; augroup divers &quot; {{{2&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; au!&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot; Textwidth de 78 pour tous les fichiers texte&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; autocmd FileType text setlocal textwidth=78&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot; Remet la position du curseur comme elle était avant&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; autocmd BufReadPost *&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \ if line(&quot;'\&quot;&quot;) &amp;gt; 0 &amp;amp;&amp;amp; line(&quot;'\&quot;&quot;) &amp;lt;= line(&quot;$&quot;) |&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \ &amp;nbsp; exe &quot;normal g`\&quot;&quot; |&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \ endif&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot; La valeur des tabs par défaut&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; autocmd BufNewFile,BufRead * call ChangeTabSize(4, 0)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot; Ne pas faire de wrap dans les fichiers ChangeLog&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; autocmd BufNewFile,BufRead ChangeLog set nowrap textwidth=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; autocmd BufNewFile,BufRead ChangeLog call ChangeTabSize(8, 0)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot; PKGBUILD&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; autocmd BufNewFile,BufRead PKGBUILD set syntax=sh&lt;br /&gt;
&amp;nbsp; &amp;nbsp; augroup END &quot; }}}2&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; augroup pdf &quot; {{{2&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; au!&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; autocmd BufReadPre *.pdf set ro&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; autocmd BufReadPost *.pdf %!pdftotext -nopgbrk &quot;%&quot; - | fmt -csw78&lt;br /&gt;
&amp;nbsp; &amp;nbsp; augroup END &quot; }}}2&lt;br /&gt;
endif&lt;/p&gt;
&lt;p&gt;&quot; }}}1&lt;/p&gt;
&lt;p&gt;&quot; Fonctions {{{1&lt;/p&gt;
&lt;p&gt;&quot; Fonctions utilisée par vimrc {{{2&lt;/p&gt;
&lt;p&gt;function! ChangeTabSize(tab_size, expandtab)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; execute(&quot;set tabstop=&quot;.a:tab_size.&quot; softtabstop=&quot;.a:tab_size.&quot; shiftwidth=&quot;.a:tab_size)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; if a:expandtab != 0&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; execute(&quot;set expandtab&quot;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; execute(&quot;set noexpandtab&quot;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; endif&lt;br /&gt;
endfunction&lt;/p&gt;
&lt;p&gt;&quot; }}}2&lt;/p&gt;
&lt;p&gt;&quot; Les fonctions utiles pour l'utilisateur {{{2&lt;/p&gt;
&lt;p&gt;&quot; Aller dans le répertoire du fichier édité.&lt;br /&gt;
function! ChangeToFileDirectory()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if bufname(&quot;&quot;) !~ &quot;^ftp://&quot; &quot; C'est impératif d'avoir un fichier local !&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lcd %:p:h&lt;br /&gt;
&amp;nbsp; &amp;nbsp; endif&lt;br /&gt;
endfunction&lt;/p&gt;
&lt;p&gt;map ,fd :call ChangeToFileDirectory()&amp;lt;CR&amp;gt;&lt;/p&gt;
&lt;p&gt;&quot; Entrer la commande &quot;:e&quot; dans le répertiore du fichier édité&lt;br /&gt;
if has(&quot;unix&quot;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; map ,e :e &amp;lt;C-R&amp;gt;=expand(&quot;%:p:h&quot;) . &quot;/&quot; &amp;lt;CR&amp;gt;&lt;br /&gt;
else&lt;br /&gt;
&amp;nbsp; &amp;nbsp; map ,e :e &amp;lt;C-R&amp;gt;=expand(&quot;%:p:h&quot;) . &quot;\&quot; &amp;lt;CR&amp;gt;&lt;br /&gt;
endif&lt;/p&gt;
&lt;p&gt;&quot; }}}2&lt;/p&gt;
&lt;p&gt;&quot; }}}1&lt;/p&gt;
&lt;p&gt;&quot; Raccourcis clavier {{{1&lt;/p&gt;
&lt;p&gt;&quot; Vim 7 spell checker&lt;br /&gt;
if has(&quot;spell&quot;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; setlocal spell spelllang=&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &quot; Language : FR&lt;br /&gt;
&amp;nbsp; &amp;nbsp; map ,lf :setlocal spell spelllang=fr&amp;lt;cr&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &quot; Language : EN&lt;br /&gt;
&amp;nbsp; &amp;nbsp; map ,le :setlocal spell spelllang=en&amp;lt;cr&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &quot; Language : Aucun&lt;br /&gt;
&amp;nbsp; &amp;nbsp; map ,ln :setlocal spell spelllang=&amp;lt;cr&amp;gt;&lt;br /&gt;
endif&lt;/p&gt;
&lt;p&gt;set spellsuggest=5&lt;br /&gt;
autocmd BufEnter *.txt set spell&lt;br /&gt;
autocmd BufEnter *.txt set spelllang=fr&lt;/p&gt;
&lt;p&gt;&quot; Tabs&lt;br /&gt;
map ,t :tabnew&amp;lt;cr&amp;gt;&lt;br /&gt;
map ,w :tabclose&amp;lt;cr&amp;gt;&lt;br /&gt;
imap &amp;lt;C-t&amp;gt; &amp;lt;Esc&amp;gt;&amp;lt;C-t&amp;gt;&lt;br /&gt;
imap &amp;lt;C-w&amp;gt; &amp;lt;Esc&amp;gt;&amp;lt;C-w&amp;gt;&lt;br /&gt;
map &amp;lt;tab&amp;gt; gt &lt;/p&gt;
&lt;p&gt;&quot; Cacher le menu&lt;br /&gt;
map ,m :set guioptions=+M&amp;lt;cr&amp;gt;&lt;/p&gt;
&lt;p&gt;&quot; Mode normal&lt;br /&gt;
map ,mn :set guifont=&amp;lt;cr&amp;gt;&lt;/p&gt;
&lt;p&gt;&quot; Mode programmation&lt;br /&gt;
map ,mp :set guifont=Monospace\ 9&amp;lt;cr&amp;gt;&lt;/p&gt;
&lt;p&gt;&quot; Sélectionner tout&lt;br /&gt;
map &amp;lt;C-a&amp;gt; ggVG&lt;/p&gt;
&lt;p&gt;&quot; Copier (le gv c'est pour remettre le sélection)&lt;br /&gt;
map &amp;lt;C-c&amp;gt; &quot;+ygv&lt;/p&gt;
&lt;p&gt;&quot; Couper&lt;br /&gt;
map &amp;lt;C-x&amp;gt; &quot;+x&lt;/p&gt;
&lt;p&gt;&quot; Coller&lt;br /&gt;
map &amp;lt;C-p&amp;gt; &quot;+gP&lt;/p&gt;
&lt;p&gt;&quot; Désactiver le highlight (lors d'une recherche par exemple)&lt;br /&gt;
map &amp;lt;F2&amp;gt; :let @/=&quot;&quot;&amp;lt;cr&amp;gt;&lt;/p&gt;
&lt;p&gt;&quot; Convertir un html&lt;br /&gt;
map ,h :runtime syntax/2html.vim&amp;lt;cr&amp;gt;&lt;/p&gt;
&lt;p&gt;&quot; encoder rapidement&lt;br /&gt;
map ,c ggVGg?&lt;/p&gt;
&lt;p&gt;&quot; }}}1&lt;/p&gt;
&lt;p&gt;&quot; Les plugins Vim et leurs options {{{1&lt;/p&gt;
&lt;p&gt;&quot; Gérer les fichiers man&lt;br /&gt;
runtime ftplugin/man.vim &lt;/p&gt;
&lt;p&gt;&quot; }}}1&lt;/p&gt;
&lt;p&gt;&quot; vim:ai:et:sw=4:ts=4:sts=4:tw=78:fenc=utf-8:foldmethod=marker&lt;/p&gt;&lt;/div&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>u-classroom : suite du cours vim</title>
    <link>http://u-classroom.net/post/2008/03/05/u-classroom-%3A-suite-du-cours-vim</link>
    <guid isPermaLink="false">urn:md5:e8cf2c8db1cbda115cb3d83c02f85fc1</guid>
    <pubDate>Wed, 05 Mar 2008 20:26:00 +0100</pubDate>
    <dc:creator>u-classroom</dc:creator>
        <category>PUF</category>
        <category>Accueil</category><category>Vim</category>    
    <description>    &lt;p&gt;La suite du cours Vim donné il y a 10 jours par yannick_lm aura lieu ce vendredi 07 mars à 20H00 (heure française métropolitaine), toujours sur le canal #u-classroom du réseau irc freenode.&lt;/p&gt;
&lt;p&gt;Si vous n'avez pas pu suivre la première session, &lt;a href=&quot;http://u-classroom.net/cours/logiciels/vim-1.html&quot;&gt;le cours est en ligne&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A vendredi !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Prochaine session : vim</title>
    <link>http://u-classroom.net/post/2008/02/14/Prochaine-session-%3A-vim</link>
    <guid isPermaLink="false">urn:md5:15aef04a3034424ee985fec06cd33a06</guid>
    <pubDate>Thu, 14 Feb 2008 19:01:00 +0100</pubDate>
    <dc:creator>u-classroom</dc:creator>
        <category>PUF</category>
        <category>Accueil</category><category>Planet</category><category>Vim</category>    
    <description>    &lt;p&gt;Qui n'est jamais passé par là... Démarrage de vim (généralement par un
complet hasard), râleries parce que cet éditeur bizarre n'a pas l'air de
marcher (jusqu'à ce qu'on tombe sur la bonne touche, mais sans
comprendre ce qui s'est passé), et fermeture violente de console parce
qu'impossible de trouver comment sortir de l'éditeur  &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;

&lt;p&gt;C'est &lt;a href=&quot;http://doc.ubuntu-fr.org/utilisateurs/yannick_lm&quot;&gt;Yannick LM&lt;/a&gt;
qui sera le professeur pour la session classroom sur
vim. Elle se déroulera le vendredi 22 février à 20 heures (heure
métropolitaine, 19H00 UTC), sur le canal #u-classroom du réseau irc
freenode.&lt;/p&gt;

&lt;p&gt;Aucun prérequis n'est nécessaire à ce cours, si ce n'est une
installation du logiciel ('sudo apt-get install vim' pour debian et
dérivés).&lt;/p&gt;

&lt;p&gt;Une fois vim maîtrisé, vous ne verrez plus votre console du même oeil !
Et vous pourrez profiter de la seconde session (dont la date sera donnée
ultérieurement).&lt;/p&gt;

&lt;p&gt;A bientôt sur #u-classroom !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Squelette de documentation des fonctions C/C++ avec vim</title>
    <link>http://planet.ubuntu-fr.org/post/2007/12/07/Squelette-de-documentation-des-fonctions-C/C-avec-vim</link>
    <guid isPermaLink="false">urn:md5:4357ec65e1c8ec66017a4fa1fd638dd5</guid>
    <pubDate>Fri, 07 Dec 2007 00:16:00 +0100</pubDate>
    <dc:creator>Administrateur</dc:creator>
        <category>Planet</category>
        <category>Accueil</category><category>C</category><category>Planet</category><category>regexp</category><category>Ubuntu</category><category>Vim</category>    
    <description>        &lt;p&gt;Bon, j'avoue, le titre ne veut rien dire, mais faut m'excuser, il est tard, skateinmars a pas arrêté de m'embêter, etc, etc ...&lt;/p&gt;


&lt;p&gt;Le but de ce petit topic est de vous montrer comment générer un début de docmentation des fonctions C sous vim.&lt;/p&gt;


&lt;p&gt;D'abord, le code. Prenez une chaise, des aspirines, un grand verre, de l'eau . Vous êtes prêt&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
map T :copy.&amp;lt;ESC&amp;gt;k&amp;lt;ESC&amp;gt;:.!sed -r 's@(.[^ ]*) (.[^\(]*)\((.*)\).*@/**\n* \@name \2 :\n* \@Param \3 :\n* \@Return \1 :\n*/@; s/,/ :\n* \@Param /g; s/ [ ]+/ /g;' &amp;lt;CR&amp;gt;&amp;lt;CR&amp;gt;
&lt;/pre&gt;



&lt;p&gt;J'avais prévenu &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Alors ça fait quoi ça&amp;nbsp;? Ca va générer à l'aide d'une simple touche de raccourci un squelette de documentation compatible doxygen &amp;amp; autres. Vous mettez cette petite ligne à la fin de votre ~/.vimrc, vous enregistrez tout ça et vous ouvrez votre code source C préféré.&lt;/p&gt;


&lt;p&gt;Placez vous sur la ligne de déclaration d'une fonction par exemple&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt; int main (int argc, const char ** argv) { &lt;/pre&gt;



&lt;p&gt;et, en mode commande, appuyez sur T (shift + t).&lt;/p&gt;


&lt;p&gt;Et là magie, vous voyez apparaître ceci au dessus de la déclaration&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
/**
* @name main :
* @Param int argc :
* @Param const char ** argv :
* @Return int :
*/
&lt;/pre&gt;


&lt;p&gt;Si ça ne marche pas c'est que&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vous avez mal fait&lt;/li&gt;
&lt;li&gt;J'ai mal fait&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dans le premier cas, reprenez vous, que diable&amp;nbsp;! Dans le second, tant pis pour vous je vais me coucher &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;PS&amp;nbsp;: un &lt;strong&gt;GRAND GRAND&lt;/strong&gt; merci au petit petit gapz qui du fond de sa cave m'a grandement aidé à faire ça (pour ne pas dire qu'il a fait de loin le plus dur) &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Squelette de documentation des fonctions C/C++ avec vim</title>
    <link>http://u-classroom.net/post/2007/12/07/Squelette-de-documentation-des-fonctions-C/C-avec-vim</link>
    <guid isPermaLink="false">urn:md5:a34b1277f7d79745404248e5dfa2b99e</guid>
    <pubDate>Thu, 06 Dec 2007 23:16:00 +0100</pubDate>
    <dc:creator>u-classroom</dc:creator>
        <category>PUF</category>
        <category>Accueil</category><category>Planet</category><category>Regexp</category><category>Ubuntu</category><category>Vim</category>    
    <description>    &lt;p&gt;Bon, j'avoue, le titre ne veut rien dire, mais faut m'excuser, il est tard, skateinmars a pas arrêté de m'embêter, etc, etc ...&lt;/p&gt;


&lt;p&gt;Le but de ce petit topic est de vous montrer comment générer un début de docmentation des fonctions C sous vim.&lt;/p&gt;


&lt;p&gt;D'abord, le code. Prenez une chaise, des aspirines, un grand verre, de l'eau . Vous êtes prêt&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
map T :copy.&amp;lt;ESC&amp;gt;k&amp;lt;ESC&amp;gt;:.!sed -r 's@(.[^ ]*) (.[^\(]*)\((.*)\).*@/**\n* \@name \2 :\n* \@Param \3 :\n* \@Return \1 :\n*/@; s/,/ :\n* \@Param /g; s/ [ ]+/ /g;' &amp;lt;CR&amp;gt;&amp;lt;CR&amp;gt;
&lt;/pre&gt;



&lt;p&gt;J'avais prévenu &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Alors ça fait quoi ça&amp;nbsp;? Ca va générer à l'aide d'une simple touche de raccourci un squelette de documentation compatible doxygen &amp;amp; autres. Vous mettez cette petite ligne à la fin de votre ~/.vimrc, vous enregistrez tout ça et vous ouvrez votre code source C préféré.&lt;/p&gt;


&lt;p&gt;Placez vous sur la ligne de déclaration d'une fonction par exemple&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt; int main (int argc, const char ** argv) { &lt;/pre&gt;



&lt;p&gt;et, en mode commande, appuyez sur T (shift + t).&lt;/p&gt;


&lt;p&gt;Et là magie, vous voyez apparaître ceci au dessus de la déclaration&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
/**
* @name main :
* @Param int argc :
* @Param const char ** argv :
* @Return int :
*/
&lt;/pre&gt;


&lt;p&gt;Si ça ne marche pas c'est que&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vous avez mal fait&lt;/li&gt;
&lt;li&gt;J'ai mal fait&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dans le premier cas, reprenez vous, que diable&amp;nbsp;! Dans le second, tant pis pour vous je vais me coucher &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;PS&amp;nbsp;: un &lt;strong&gt;GRAND GRAND&lt;/strong&gt; merci au petit petit gapz qui du fond de sa cave m'a grandement aidé à faire ça (pour ne pas dire qu'il a fait de loin le plus dur) &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Quelques trucs avec ViM #2</title>
    <link>http://pwet.fr/blog/quelques_trucs_avec_vim_2</link>
    <guid isPermaLink="false">urn:md5:46aa18555a881b6d1864eb062016fc6a</guid>
    <pubDate>Sun, 15 Apr 2007 19:39:34 +0200</pubDate>
    <dc:creator>tigrou</dc:creator>
        <category>PUF</category>
        <category>Accueil</category><category>Truc</category><category>Ubuntu</category><category>Vim</category>    
    <description>    &lt;p&gt;
Voici la suite du billet &lt;a href=&quot;http://pwet.fr/blog/quelques_trucs_avec_vim_1&quot;&gt;Quelques trucs avecViM #1&lt;/a&gt;
 qui, comme le suggèrait le #1, a bien une suite &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; Voici donc 3 petits trucs qui me simplifient la vie presque tous les jours.&lt;br /&gt;&lt;i&gt;Note : les captures d'écran sont des GIF animés, il est possible de les revoir en cliquant dessus pour faire apparaître la page dédiée à l'image.&lt;/i&gt;&lt;/p&gt;&lt;a name=&quot;eztoc177165_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Mise en valeur de la ligne courante&lt;/h2&gt;&lt;p&gt;Une fonctionnalité que l'on voit dans beaucoup d'éditeurs de texte avancés ou &lt;acronym title=&quot;Integrated Development Environment&quot;&gt;IDE&lt;/acronym&gt;
 est la mise en valeur de la ligne courante. Depuis vim 7, disponible depuis &lt;a href=&quot;http://doc.ubuntu-fr.org/versions/edgy_eft&quot;&gt;Ubuntu Edgy Eft&lt;/a&gt;
, cette fonctionnalité est directement dans l'éditeur. Dans un terminal, la ligne est soulignée alors que dans la version graphique, il est possible de définir une couleur de fond, pour ma part, j'utilise les lignes suivantes dans mon .gvimrc pour avoir une ligne légèrement surlignée de bleu/gris dans la version graphique uniquement :&lt;/p&gt;	&lt;pre&gt;set cursorline
hi CursorLine guibg=#e7ebff&lt;/pre&gt;&lt;a name=&quot;eztoc177165_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;Les &lt;i&gt;folds&lt;/i&gt; sur mesure&lt;/h2&gt;&lt;p&gt;Beaucoup d'éditeurs proposent la possibilité de &quot;pliage/dépliage&quot; (fold/unfold) des structures de contrôle et/ou des commentaires. Il est possible de faire la même chose dans vim mais j'apprécie assez peu cette fonctionnalités. Par contre, il est possible de définir des zones &quot;pliables&quot; sur mesure ce qui peut être pratique pour être à deux endroits éloignés dans le code sans ouvrir deux buffers sur le même fichier. Pour commencer à l'utiliser, le plus simple est de passer en mode visuel en tapant v depuis le mode commande, de sélectionner quelques lignes de texte avec les déplacements habituels et puis de faire zf pour créer la zone pliée. Pour la déplier, il suffit de taper zo (Fold Open), pour la replier zc (Fold Close). Si on n'a plus besoin de la zone, on peut faire zd (Fold Delete) pour supprimer la possibilité de pliage/dépliage, le texte reste intact. Il est possible d'avoir un repère visuel où des zones pliables sont positionnées en fixant la variable foldcolumn, par exemple à 2 en tapant &quot;:set foldcolumn=2&quot;, ce qui donne :&lt;/p&gt;
&lt;div&gt;&lt;div&gt;
&lt;div&gt;

&lt;div&gt;
&lt;p&gt;    
    
        
    
            &lt;a href=&quot;http://pwet.fr/media/images/fold_dans_vim&quot;&gt;&lt;img src=&quot;http://pwet.fr/var/plain/storage/images/media/images/fold_dans_vim/177387-2-fre-FR/fold_dans_vim.gif&quot; width=&quot;480&quot; height=&quot;535&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;    
    
    
    &lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;&lt;p&gt;Les zones sont imbricables et beaucoup de raccourcis existent pour les manipuler. Plus d'informations &lt;a href=&quot;http://vimdoc.sourceforge.net/htmldoc/fold.html&quot;&gt;le &lt;i&gt;folding&lt;/i&gt; dans l'aide de vim&lt;/a&gt;
.&lt;/p&gt;&lt;a name=&quot;eztoc177165_3&quot;&gt;&lt;/a&gt;&lt;h2&gt;Les abbréviations&lt;/h2&gt;&lt;p&gt;Lorsqu'on écrit du code, on utilise régulièrement les mêmes constructions syntaxiques, il peut être avantageux de définir des abbréviations permettant de taper rapidement ces séquences. Dans &lt;a href=&quot;http://projects.ez.no/ezvim&quot;&gt;eZVim&lt;/a&gt;
, &lt;a href=&quot;http://pwet.fr/blog/ezvim_0_1&quot;&gt;un plugin vim pour eZ Publish&lt;/a&gt;
, j'en définis quelques unes, par exemple :&lt;/p&gt;	&lt;pre&gt;iabbrev ezfe {foreach __ as $k =&gt; $val}&lt;CR&gt;&lt;CR&gt;{/foreach}
match Error / __ /&lt;/pre&gt;&lt;p&gt;La première ligne indique à vim de remplacer la chaîne ezfe suivie d'un espace par le reste de la ligne (foreach) en mode insertion. &lt;CR&gt; représente une frappe sur la touche &quot;Entrée&quot;. La seconde ligne dit à vim de reconnaître la chaîne &quot; __ &quot; comme une erreur ce qui permet de voir rapidement les points à complèter dans ce qui vient d'être inséré pour obtenir un code syntaxiquement correct :&lt;/p&gt;
&lt;div&gt;&lt;div&gt;
&lt;div&gt;

&lt;div&gt;
&lt;p&gt;    
    
        
    
            &lt;a href=&quot;http://pwet.fr/media/images/abbreviations_dans_vim&quot;&gt;&lt;img src=&quot;http://pwet.fr/var/plain/storage/images/media/images/abbreviations_dans_vim/177390-1-fre-FR/abbreviations_dans_vim.gif&quot; width=&quot;445&quot; height=&quot;132&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;    
    
    
    &lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;&lt;p&gt;Plus d'informations sur &lt;a href=&quot;http://vimdoc.sourceforge.net/htmldoc/map.html#Abbreviations&quot;&gt;les abbréviations dans l'aide de vim&lt;/a&gt;
.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Quelques trucs avec ViM #1</title>
    <link>http://pwet.fr/blog/quelques_trucs_avec_vim_1</link>
    <guid isPermaLink="false">urn:md5:6bba016630796d0cc4af4fe48c40843d</guid>
    <pubDate>Mon, 19 Feb 2007 22:48:22 +0100</pubDate>
    <dc:creator>tigrou</dc:creator>
        <category>PUF</category>
        <category>Accueil</category><category>Geek</category><category>Linux</category><category>Pense bête</category><category>Shell</category><category>Ssh</category><category>Truc</category><category>Ubuntu</category><category>Vim</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://pwet.fr/man/linux/commandes/vim&quot;&gt;ViM&lt;/a&gt;
 est un formidable éditeur de texte. Bien sûr celui-ci demande un peu d'investissement avant d'être productif mais une fois franchi ce cap, il est vraiment très agréable de garder les mains sur le clavier pour toutes les tâches d'édition. Il est aussi très pratique d'utiliser le même éditeur de texte pour éditer un fichier de configuration au coup par coup sur un serveur et pour écrire de manière plus élaborée (programmation, e-mail, ...), on finit même par taper des commandes ViM dans le terminal ce qui oblige &lt;a href=&quot;http://pwet.fr/blog/etre_a_l_aise_avec_bash_2#eztoc166534_2&quot;&gt;à définir des alias bizarres&lt;/a&gt;
 &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;&lt;p&gt;Je ne vais pas faire ici une introduction à l'utilisation de ViM car &lt;a href=&quot;http://www.think-underground.com/index.php/2006/08/05/326-introduction-rapide-a-vim&quot;&gt;cela a déjà été bien fait&lt;/a&gt;
 mais plutôt donner quelques recettes de cuisine bien pratiques.&lt;/p&gt;&lt;a name=&quot;eztoc175138_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Le fichier .vimrc&lt;/h2&gt;&lt;p&gt;Pour commencer, il faut configurer la bête &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt; Pour cela, il faut créer ou éditer le fichier .vimrc dans votre dossier personnel, par exemple avec vim. Voici un .vimrc de base :&lt;/p&gt;	&lt;pre&gt;&lt;span&gt;set&lt;/span&gt; nocompatible                &quot; pas compatibilité avec vi
 
&quot; priorité faible pour les fichiers avec les extensions
&quot; suivantes lors du complètement
&lt;span&gt;set&lt;/span&gt; &lt;span&gt;suffixes&lt;/span&gt;=.bak,~,.swp,.o,.info,.&lt;span&gt;aux&lt;/span&gt;,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
&lt;span&gt;set&lt;/span&gt; &lt;span&gt;history&lt;/span&gt;=&lt;span&gt;50&lt;/span&gt;                  &quot; &lt;span&gt;50&lt;/span&gt; lignes dans l'historique
&lt;span&gt;set&lt;/span&gt; ruler                       &quot; affiche la position du curseur en bas
&lt;span&gt;set&lt;/span&gt; sm                          &quot; affiche la parenthèse correspondante
 
&lt;span&gt;set&lt;/span&gt; &lt;span&gt;formatoptions&lt;/span&gt;=tcroqn        &quot; indentation
&lt;span&gt;set&lt;/span&gt; autoindent
&lt;span&gt;set&lt;/span&gt; cin
&lt;span&gt;set&lt;/span&gt; &lt;span&gt;textwidth&lt;/span&gt;=&lt;span&gt;0&lt;/span&gt;                 &quot; pas de coupure de ligne par défaut
&lt;span&gt;set&lt;/span&gt; &lt;span&gt;backspace&lt;/span&gt;=&lt;span&gt;2&lt;/span&gt;
&lt;span&gt;set&lt;/span&gt; &lt;span&gt;ts&lt;/span&gt;=&lt;span&gt;4&lt;/span&gt;                        &quot; tabulation sur &lt;span&gt;4&lt;/span&gt; caractères
&lt;span&gt;set&lt;/span&gt; &lt;span&gt;sw&lt;/span&gt;=&lt;span&gt;4&lt;/span&gt;
 
&lt;span&gt;set&lt;/span&gt; nobackup                    &quot; pas de fichier backup
&lt;span&gt;set&lt;/span&gt; &lt;span&gt;dir&lt;/span&gt;=~/tmp                   &quot; fichier temporaire dans ~/tmp &lt;span&gt;(&lt;/span&gt;il faut qu'il existe !&lt;span&gt;)&lt;/span&gt;
&lt;span&gt;set&lt;/span&gt; autowrite
 
&lt;span&gt;set&lt;/span&gt; hlsearch                    &quot; surligne les recherches
&lt;span&gt;set&lt;/span&gt; incsearch                   &quot; recherche au fur et à mesure
 
syntax on                       &quot; coloration syntaxique
&lt;span&gt;set&lt;/span&gt; &lt;span&gt;background&lt;/span&gt;=dark             &quot; fond noir par défaut&lt;/pre&gt;&lt;p&gt;Ce fichier est évidemment à adapter en fonction de votre utilisation, constitue déjà une bonne base pour se faciliter l'édition avec ViM. Comme toujours, en cas de doute sur un paramètre, il ne faut pas hésiter à consulter l'aide très complète en tapant :help le_paramètre pour voir de quoi il retourne.&lt;/p&gt;&lt;a name=&quot;eztoc175138_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;Quelques trucs rapides&lt;/h2&gt;&lt;a name=&quot;eztoc175138_2_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;Afficher les numéros de lignes&lt;/h3&gt;&lt;p&gt;Il suffit de taper :set nu et :set nu! pour les cacher. Si vous voulez toujours afficher les numéros de ligne, il suffit d'ajouter set nu dans votre .vimrc.&lt;/p&gt;&lt;a name=&quot;eztoc175138_2_2&quot;&gt;&lt;/a&gt;&lt;h3&gt;Éditer des fichiers distants via SSH&lt;/h3&gt;&lt;p&gt;Il est bien sûr possible de se connecter en SSH et d'utiliser ViM sur la machine distante, mais il n'est peut être pas configurer voire pas installé du tout... La commande suivante me permet d'éditer mon .bashrc et le fichier /tmp/unfichier sur ma Dedibox :&lt;/p&gt;	&lt;pre&gt;$ &lt;a href=&quot;http://pwet.fr/man/linux/commandes/vim&quot;&gt;&lt;span&gt;vim&lt;/span&gt;&lt;/a&gt; &lt;span&gt;'scp://tigrou@pwet.fr/.bashrc'&lt;/span&gt; &lt;span&gt;'scp://tigrou@pwet.fr//tmp/unfichier'&lt;/span&gt;&lt;/pre&gt;&lt;a name=&quot;eztoc175138_2_3&quot;&gt;&lt;/a&gt;&lt;h3&gt;Trier les lignes d'un fichier&lt;/h3&gt;&lt;p&gt;ViM ne sait pas le faire directement, par contre, on peut utiliser la commande externe &lt;a href=&quot;http://pwet.fr/man/linux/commandes/sort&quot;&gt;sort&lt;/a&gt;
 pour le faire. Pour cela, il suffit de taper :%!sort, ce qui aura pour effet de donner le contenu du buffer courant en entrée de la commande sort et de le remplacer par sa sortie.&lt;/p&gt;&lt;a name=&quot;eztoc175138_2_4&quot;&gt;&lt;/a&gt;&lt;h3&gt;Insèrer le résultat d'une commande&lt;/h3&gt;&lt;p&gt;En tapant :%!la_commande, on remplace le contenu du buffer par la sortie de la commande. En tapant :r!la_commande, on insère son résultat. Par exemple pour insérer la date courante, on peut faire :r!date.&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>
