<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GNU Squad &#187; Vim</title>
	<atom:link href="http://blog.gnusquad.org/category/logiciels-divers/vim/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gnusquad.org</link>
	<description>Freedom computers</description>
	<lastBuildDate>Tue, 15 Jun 2010 06:04:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Afficher les caractères spéciaux dans Vim</title>
		<link>http://blog.gnusquad.org/2009/07/24/afficher-les-caracteres-speciaux-dans-vim/</link>
		<comments>http://blog.gnusquad.org/2009/07/24/afficher-les-caracteres-speciaux-dans-vim/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 14:52:10 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
				<category><![CDATA[Logiciels divers]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=260</guid>
		<description><![CDATA[De temps à autre, lors de l&#8217;écriture de scripts, il m&#8217;arrive d&#8217;accompagner l&#8217;appui de la touche espace de sa voisine, la touche « ALT-GR » ce qui du coup crée une espace insécable, invisible sur le moment jusqu&#8217;à ce que le script plante (la plupart du temps après un « pipe &#8211; ALT-GR + 8 [...]]]></description>
			<content:encoded><![CDATA[<p>De temps à autre, lors de l&#8217;écriture de scripts, il m&#8217;arrive d&#8217;accompagner l&#8217;appui de la touche espace de sa voisine, la touche « <em>ALT-GR</em> » ce qui du coup crée une espace insécable, invisible sur le moment jusqu&#8217;à ce que le script plante (la plupart du temps après un « <em>pipe</em> &#8211; <em>ALT-GR + 8</em> »)…</p>
<p>Heureusement, grâce à Vim, il est possible d&#8217;afficher certains caractères spéciaux via les variables « <em>list</em> » et « <em>listchars</em> ».</p>
<p>« <em>list</em> » permet d&#8217;activer l&#8217;affichage des caractères spéciaux, on l&#8217;active en tapant « <em>set list</em> » et on le désactive en tapant « <em>set list!</em> » ou « <em>set nolist</em> ».<br />
« <em>listchars</em> » contient la liste des caractères spéciaux à afficher séparés par des virgules (le « <em>c</em> » après le « <em>:</em> » étant le caractère de remplacement à afficher) :</p>
<ul>
<li>Fin de ligne : « <em>eol:c</em> »</li>
<li>Tabulation : « <em>tab:xy</em> » (« <em>x</em> » étant le premier caractère de la tabulation, « <em>y</em> » étant le reste qui peut varier)</li>
<li>Espaces de fin de ligne : « <em>trail:c</em> »</li>
<li>Débordement à droite de la ligne par rapport à l&#8217;écran : « <em>extends:c</em> »</li>
<li>Débordement à gauche de la ligne par rapport à l&#8217;écran : « <em>precedes:c</em> »</li>
<li>Espace insécable : « <em>nbsp:c</em> »</li>
</ul>
<p>Voici, pour exemple, les paramètres provenant de mon fichier « <em>~/.vimrc</em> » :</p>
<pre>" Affiche les caractères spéciaux
set listchars=nbsp:¤,tab:&gt;-,trail:¤,extends:&gt;,precedes:&lt;
set list</pre>
<p>Avant :<br />
<img class="alignnone size-full wp-image-268" title="VIM (list = false)" src="http://blog.gnusquad.org/wp-content/uploads/2009/07/vim_nolistchars.png" alt="VIM (list = false)" width="340" height="158" /></p>
<p>Après:<br />
<img class="alignnone size-full wp-image-267" title="VIM (list = true)" src="http://blog.gnusquad.org/wp-content/uploads/2009/07/vim_listchars.png" alt="VIM (list = true)" width="340" height="158" /></p>
<p>Sympa, non ? Merci vim ! <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<span id="more-260"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2009/07/24/afficher-les-caracteres-speciaux-dans-vim/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Habillez vos commentaires facilement grâce à Vim</title>
		<link>http://blog.gnusquad.org/2009/07/22/habillez-vos-commentaires-facilement-grace-a-vim/</link>
		<comments>http://blog.gnusquad.org/2009/07/22/habillez-vos-commentaires-facilement-grace-a-vim/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 11:20:35 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
				<category><![CDATA[Logiciels divers]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=242</guid>
		<description><![CDATA[J&#8217;ai pour habitude d&#8217;afficher de jolis commentaires bien démarqués du code source afin de pouvoir les lire très rapidement sans devoir les chercher. Hors, selon les langages de programmation, ceux-ci ne s&#8217;écrivent pas de la même façon. Je vous propose donc une petite macro (à placer dans votre « ~/.vimrc ») permettant d&#8217;habiller facilement vos [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai pour habitude d&#8217;afficher de jolis commentaires bien démarqués du code source afin de pouvoir les lire très rapidement sans devoir les chercher. Hors, selon les langages de programmation, ceux-ci ne s&#8217;écrivent pas de la même façon. Je vous propose donc une petite macro (à placer dans votre « <em>~/.vimrc</em> ») permettant d&#8217;habiller facilement vos commentaires ; celle-ci étant accessible grâce à la touche <strong>F8</strong> en mode normal.</p>
<p>Voici la macro en question :</p>
<pre>
map &lt;F8&gt; :call Comment()&lt;CR&gt;

function! Comment()
    let ext = expand("%:e")

    if ext == 'html' || ext == 'htm'
        execute "normal yyPPI&lt;!--^[lDjI   ^[j^DI--&gt;^[j"
        return
    endif

    if ext == 'php' || ext == 'js'
        execute "normal I// ^[A //^[yyPv$r/yyjpj"
        return
    endif

    if ext == 'txt'
        execute "normal I| ^[A |^[yyPr+lv$r-$r+yyjpj"
        return
    endif

    if ext == 'tex'
        execute "normal I% ^[A %^[yyPr%lv$r/$r%yyjpj"
        return
    endif

    if ext == 'c' || ext == 'cpp' || ext == 'cc' || ext == 'h' || ext == 'hpp'
        execute "normal yyPPI/*^[lDjI   ^[j^DI*/^[j"
        return
    endif

    " Style de commentaire par défaut
    if ext == 'sh' || ext == 'py' || ext == 'pl' || 1
        execute "normal I# ^[A #^[yyPr#lv$r/$r#yyjpj"
        return
    endif
endfunction
</pre>
<p>J&#8217;ai deux petites remarques à faire :</p>
<ol>
<li>« <em>^[</em> » correspond à « <em>ECHAP</em> » que l&#8217;on écrit en appuyant sur « <em>CTRL+V</em> » puis « <em>ECHAP</em> »;</li>
<li>le style de commentaire par défaut doit être sur la dernière ligne à cause du test « <em>|| 1</em> » qui dans tous les cas validera la condition.</li>
</ol>
<p>Voici le résultat obtenu selon le format de fichier :</p>
<ul>
<li>
Extension du fichier <em>html</em> ou <em>htm</em> :</p>
<pre>
&lt;!--
   Hello GNU Squad !
--&gt;
</pre>
</li>
<li>
Extension du fichier <em>php</em> ou <em>js</em> :</p>
<pre>
///////////////////////
// Hello GNU Squad ! //
///////////////////////
</pre>
</li>
<li>
Extension du fichier <em>txt</em> :</p>
<pre>
+-------------------+
| Hello GNU Squad ! |
+-------------------+
</pre>
</li>
<li>
Extension du fichier <em>tex</em> :</p>
<pre>
%///////////////////%
% Hello GNU Squad ! %
%///////////////////%
</pre>
</li>
<li>
Extension du fichier <em>c</em>, <em>cpp</em>, <em>h</em> ou <em>hpp</em> :</p>
<pre>
/*
   Hello GNU Squad !
*/
</pre>
</li>
<li>
Extension du fichier <em>sh</em>, <em>py</em>, <em>pl</em> et tout le reste :</p>
<pre>
#///////////////////#
# Hello GNU Squad ! #
#///////////////////#
</pre>
</li>
</ul>
<p>À vous d&#8217;agrémenter ou de modifier selon vos besoins, si vous avez besoin d&#8217;aide, n&#8217;hésitez-pas à passer par les commentaires <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
<span id="more-242"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2009/07/22/habillez-vos-commentaires-facilement-grace-a-vim/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Gérer ses templates pour Vim sans fichiers externes</title>
		<link>http://blog.gnusquad.org/2009/06/25/gerer-ses-templates-pour-vim-sans-fichiers-externes/</link>
		<comments>http://blog.gnusquad.org/2009/06/25/gerer-ses-templates-pour-vim-sans-fichiers-externes/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 10:50:45 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
				<category><![CDATA[Logiciels divers]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=210</guid>
		<description><![CDATA[Suite à un billet posté sur le site Informatique et liberté évoquant une solution originale pour gérer ses templates avec Vim, j&#8217;ai décidé d&#8217;améliorer un peu la technique en utilisant la puissance de ce superbe éditeur combinée à celle de sed.
Habituellement, pour chaque template, nous créons un fichier externe placé dans notre dossier personnel ~/.vim. [...]]]></description>
			<content:encoded><![CDATA[<p>Suite à un billet posté sur le site <a href="http://informatique-et-liberte.tuxfamily.org/2009/06/23/vim-et-son-vimrc-la-gestion-des-templates/trackback/">Informatique et liberté</a> évoquant une solution originale pour gérer ses templates avec <em>Vim</em>, j&#8217;ai décidé d&#8217;améliorer un peu la technique en utilisant la puissance de ce superbe éditeur combinée à celle de <em>sed</em>.</p>
<p>Habituellement, pour chaque template, nous créons un fichier externe placé dans notre dossier personnel <em>~/.vim</em>. Prenons l&#8217;exemple d&#8217;un template HTML dans <em>~/.vim/templates/html</em> que l&#8217;on appellerait de cette manière dans notre fichier de configuration <em>~/.vimrc</em> :</p>
<pre>autocmd BufNewFile *.html 0r ~/.vim/templates/html</pre>
<p>Logiciels utilisés :</p>
<ul>
<li>Vim 7.2</li>
<li>GNU Sed 4.2</li>
</ul>
<p>Le but du jeu est de centraliser toute notre configuration dans notre <em>~/.vimrc</em> et donc d&#8217;y inclure nos templates. Le seul moyen, à ma connaissance, est de mettre ceux-ci en commentaires afin qu&#8217;ils n&#8217;interfèrent pas avec le reste de la configuration, il ne restera plus alors qu&#8217;à trouver le template adéquat, pour cela on passera par des marqueurs de début et de fin de template, voici donc ma solution :</p>
<pre>" BEGIN HTML
" &lt;html&gt;
"     &lt;head&gt;
"         &lt;title&gt;Hello gnusquad !&lt;/title&gt;
"     &lt;/head&gt;
" &lt;/html&gt;
" END HTML

autocmd BufNewFile *.html call Template('HTML')

function! Template(type)
    exe "0r !sed -n '/^\"\\s*BEGIN " . a:type . "$/,/^\"\\s*END " . a:type . "$/ {s///;/^$/d;s/^\" //;p}' $MYVIMRC"
    echo '--> INFO : Template ' . a:type . ' charge < --'
endfunction</pre>
<p>Nous retrouvons donc en première partie le template mis en commentaire et délimité par les marqueurs « <strong>BEGIN HTML</strong> » et « <strong>END HTML</strong> », la deuxième partie appelle la fonction « <strong>Template</strong> » avec en paramètre « <strong>HTML</strong> » lorsque l'on crée un nouveau fichier ayant son nom correspondant au motif « <strong>*.html</strong> », la troisième et dernière partie contient la fonction « <strong>Template</strong> » proprement dite qui prend donc un paramètre servant à délimiter le template, on y trouve une jolie ligne de <em>sed</em> qui paraît obscure à première vue mais qui est très simple : on localise et ne traite que la partie contenue entre « <strong>BEGIN xxx</strong> » et « <strong>END xxx </strong> », on supprime ces deux lignes puis les lignes vides puis on décommente le template, le tout étant inséré dans le buffer courant. <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Vous aurez donc compris qu'il est très simple d'ajouter de nouveaux templates : il suffit juste que le paramètre passé à la fonction « <em>Template</em> » corresponde à la partie présente après « <em>BEGIN</em> » et « <em>END</em> » de votre template. <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-210"></span></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2009/06/25/gerer-ses-templates-pour-vim-sans-fichiers-externes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
