<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Commentaires sur : Vim : comment avoir un Système de &#171;&#160;Templates&#160;&#187; pour programmeur HTML, PHP, C++, Python, etc. ?</title>
	<atom:link href="http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/</link>
	<description></description>
	<lastBuildDate>Mon, 30 Jan 2012 15:34:02 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Par : Création d&#8217;un modèle de document avec Vim &#187; UbunBloX</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-7450</link>
		<dc:creator>Création d&#8217;un modèle de document avec Vim &#187; UbunBloX</dc:creator>
		<pubDate>Fri, 08 Jul 2011 21:54:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-7450</guid>
		<description>[...] utile : La création d&#8217;un modèle de document également appelée template. Un grand merci à Asher qui m&#8217;a permis de découvrir cette astuce [...]</description>
		<content:encoded><![CDATA[<p>[...] utile : La création d&#8217;un modèle de document également appelée template. Un grand merci à Asher qui m&#8217;a permis de découvrir cette astuce [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : barmic</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-6979</link>
		<dc:creator>barmic</dc:creator>
		<pubDate>Tue, 06 Apr 2010 08:01:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-6979</guid>
		<description>Ensuite (je le fais en deux commentaires pour me simplifier la vie) j&#039;ai moi même mon propre moteur de template. L&#039;interêt du mien c&#039;est que les modèles sont dynamique. En effet il est possible de définir des champs qui seront remplis au moment voulu (par exemple la date ou le nom du fichier).

Je rajoute une ligne dans mon .vimrc :
au BufNewFile * silent! call LoadTemplate(&#039;%:t&#039;, &#039;%:e&#039;)

La fonction LoadTemplate est définie ainsi :
function! LoadTemplate(name, extension)
  echohl Todo
  echo a:name
  echohl None
  let bou = expand(&#039;%:e&#039;)
  silent! execute &#039;0r &#039; . $HOME . &#039;/.vim/template/&#039; . bou . &#039;.tpl&#039;
  silent! execute &#039;source &#039; . $HOME . &#039;/.vim/template/autocompletion.vim&#039;
endfunction

Voici mon fichier autocompletion.vim :
:%s//\=strftime(&quot;%A %d %B %Y&quot;)/ge
:%s//\=expand(&#039;%:t&#039;)/ge
:%s//\=expand(&#039;%:t:r&#039;)/ge
let macro = substitute(expand(&#039;%:t&#039;), &#039;\.&#039;, &#039;_&#039;, &#039;g&#039;)
let macro = &#039;__&#039; . toupper(macro) . &#039;__&#039;
:%s//\=expand(macro)/ge

let nom = system(&quot;sed -n -e &#039;s/^&#039;$USER&#039;:x:[0-9]*:[0-9]*:\([^,:]*\)[:,].*$/\1/p&#039; /etc/passwd&quot;)
:%s//\=nom\b/ge

3match Todo //

Et pour exemple le fichier h.tpl :
#ifndef 
#define 



#endif // 

Il y a encore du boulot pour ne plus faire appel à des commandes externes (lors de la récupération du nom d&#039;utilisateur). Mais c&#039;est assez efficace.</description>
		<content:encoded><![CDATA[<p>Ensuite (je le fais en deux commentaires pour me simplifier la vie) j&#8217;ai moi même mon propre moteur de template. L&#8217;interêt du mien c&#8217;est que les modèles sont dynamique. En effet il est possible de définir des champs qui seront remplis au moment voulu (par exemple la date ou le nom du fichier).</p>
<p>Je rajoute une ligne dans mon .vimrc :<br />
au BufNewFile * silent! call LoadTemplate(&#8216;%:t&#8217;, &#8216;%:e&#8217;)</p>
<p>La fonction LoadTemplate est définie ainsi :<br />
function! LoadTemplate(name, extension)<br />
  echohl Todo<br />
  echo a:name<br />
  echohl None<br />
  let bou = expand(&#8216;%:e&#8217;)<br />
  silent! execute &#8217;0r &#8216; . $HOME . &#8216;/.vim/template/&#8217; . bou . &#8216;.tpl&#8217;<br />
  silent! execute &#8216;source &#8216; . $HOME . &#8216;/.vim/template/autocompletion.vim&#8217;<br />
endfunction</p>
<p>Voici mon fichier autocompletion.vim :<br />
:%s//\=strftime(&laquo;&nbsp;%A %d %B %Y&nbsp;&raquo;)/ge<br />
:%s//\=expand(&#8216;%:t&#8217;)/ge<br />
:%s//\=expand(&#8216;%:t:r&#8217;)/ge<br />
let macro = substitute(expand(&#8216;%:t&#8217;), &#8216;\.&#8217;, &#8216;_&#8217;, &#8216;g&#8217;)<br />
let macro = &#8216;__&#8217; . toupper(macro) . &#8216;__&#8217;<br />
:%s//\=expand(macro)/ge</p>
<p>let nom = system(&laquo;&nbsp;sed -n -e &#8216;s/^&#8217;$USER&#8217;:x:[0-9]*:[0-9]*:\([^,:]*\)[:,].*$/\1/p&#8217; /etc/passwd&nbsp;&raquo;)<br />
:%s//\=nom\b/ge</p>
<p>3match Todo //</p>
<p>Et pour exemple le fichier h.tpl :<br />
#ifndef<br />
#define </p>
<p>#endif // </p>
<p>Il y a encore du boulot pour ne plus faire appel à des commandes externes (lors de la récupération du nom d&#8217;utilisateur). Mais c&#8217;est assez efficace.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : barmic</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-6978</link>
		<dc:creator>barmic</dc:creator>
		<pubDate>Tue, 06 Apr 2010 07:51:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-6978</guid>
		<description>Bonjour,

J&#039;ai pleins de petites choses à rajouter :)

Pour Phil :
Tu peut remplacer
call system(&quot;grep \&quot;^..TEMPLATE-HTML\&quot; ~/.vimrc &#124; sed &#039;s/^\&quot; TEMPLATE-HTML //&#039; &gt; /tmp/template_vim.html&quot;)
par call system(&quot;sed -n &#039;s/^\&quot; TEMPLATE-HTML //p&#039; ~/.vimrc &gt; /tmp/template_vim.html&quot;)
Comme ça la commande est plus simple.
Ensuite tu peut faire directement appel à un programme externe avec la commande r donc tu peut faire ça :
autocmd bufNewFile *.html 0r!sed -n &#039;s/^\&quot; TEMPLATE-HTML //p&#039; ~/.vimrc

Je pense qu&#039;il est possible de faire plus simple encore en n&#039;appelant pas sed (et rester en vim de bout à bout), mais je sais pas encore comment.</description>
		<content:encoded><![CDATA[<p>Bonjour,</p>
<p>J&#8217;ai pleins de petites choses à rajouter <img src='http://blog.asher256.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Pour Phil :<br />
Tu peut remplacer<br />
call system(&laquo;&nbsp;grep \&nbsp;&raquo;^..TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym>\&nbsp;&raquo; ~/.vimrc | sed &#8216;s/^\&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym> //&#8217; &gt; /tmp/template_vim.html&nbsp;&raquo;)<br />
par call system(&laquo;&nbsp;sed -n &#8216;s/^\&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym> //p&#8217; ~/.vimrc &gt; /tmp/template_vim.html&nbsp;&raquo;)<br />
Comme ça la commande est plus simple.<br />
Ensuite tu peut faire directement appel à un programme externe avec la commande r donc tu peut faire ça :<br />
autocmd bufNewFile *.html 0r!sed -n &#8216;s/^\&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym> //p&#8217; ~/.vimrc</p>
<p>Je pense qu&#8217;il est possible de faire plus simple encore en n&#8217;appelant pas sed (et rester en vim de bout à bout), mais je sais pas encore comment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Philippe</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-6241</link>
		<dc:creator>Philippe</dc:creator>
		<pubDate>Mon, 28 Sep 2009 14:29:19 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-6241</guid>
		<description>Merci beaucoup pour cette astuce !
C&#039;est vraiment pratique :)</description>
		<content:encoded><![CDATA[<p>Merci beaucoup pour cette astuce !<br />
C&#8217;est vraiment pratique <img src='http://blog.asher256.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Phil</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-5944</link>
		<dc:creator>Phil</dc:creator>
		<pubDate>Mon, 22 Jun 2009 21:40:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-5944</guid>
		<description>Le code HTML n&#039;est pas passé mais tes lecteurs comprendront que chaque ligne commentée et commençant par TEMPLATE-HTML est un copié/collé de l&#039;exemple que tu fournis dans ton billet et que je recherche avec un grep avant de nettoyer ces fameux caractères pour obtenir mon template. J&#039;alimente ainsi un fichier temporaire qui est relayé à la commande VIM que tu m&#039;as apprise.

J&#039;ai conscience que ce n&#039;est pas forcément une technique très propre... Je suis ouvert aux commentaires !</description>
		<content:encoded><![CDATA[<p>Le code <acronym title="HyperText Markup Language">HTML</acronym> n&#8217;est pas passé mais tes lecteurs comprendront que chaque ligne commentée et commençant par TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym> est un copié/collé de l&#8217;exemple que tu fournis dans ton billet et que je recherche avec un grep avant de nettoyer ces fameux caractères pour obtenir mon template. J&#8217;alimente ainsi un fichier temporaire qui est relayé à la commande VIM que tu m&#8217;as apprise.</p>
<p>J&#8217;ai conscience que ce n&#8217;est pas forcément une technique très propre&#8230; Je suis ouvert aux commentaires !</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Phil</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-5943</link>
		<dc:creator>Phil</dc:creator>
		<pubDate>Mon, 22 Jun 2009 21:38:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-5943</guid>
		<description>Merci pour ton article. Je ne voulais pas faire d&#039;autres fichiers (je veux que mon vimrc se suffise à lui-même) alors j&#039;ai pensé à l&#039;astuce suivante que je partage ici et que je posterai sur mon blog dans la lancée de mes config vimrc !

&quot; TEMPLATE-HTML 
&quot; TEMPLATE-HTML 
&quot; TEMPLATE-HTML 
&quot; TEMPLATE-HTML         ______
&quot; TEMPLATE-HTML         
&quot; TEMPLATE-HTML         
&quot; TEMPLATE-HTML         
&quot; TEMPLATE-HTML         
&quot; TEMPLATE-HTML         
&quot; TEMPLATE-HTML         
&quot; TEMPLATE-HTML 
&quot; TEMPLATE-HTML 
&quot; TEMPLATE-HTML 
&quot; TEMPLATE-HTML 
&quot; TEMPLATE-HTML 

call system(&quot;grep &quot;^..TEMPLATE-HTML&quot; ~/.vimrc &#124; sed &#039;s/^&quot; TEMPLATE-HTML //&#039; &gt; /tmp/template_vim.html&quot;)
autocmd bufNewFile *.html 0r /tmp/template_vim.html

Sur le même principe, on peut bien-sûr enchaîner les templates, là, c&#039;est une adaptation du tien.

Merci encore pour ton article de qualité !</description>
		<content:encoded><![CDATA[<p>Merci pour ton article. Je ne voulais pas faire d&#8217;autres fichiers (je veux que mon vimrc se suffise à lui-même) alors j&#8217;ai pensé à l&#8217;astuce suivante que je partage ici et que je posterai sur mon blog dans la lancée de mes config vimrc !</p>
<p>&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym>         ______<br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym><br />
&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym> </p>
<p>call system(&laquo;&nbsp;grep &laquo;&nbsp;^..TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym>&nbsp;&raquo; ~/.vimrc | sed &#8216;s/^&nbsp;&raquo; TEMPLATE-<acronym title="HyperText Markup Language">HTML</acronym> //&#8217; &gt; /tmp/template_vim.html&nbsp;&raquo;)<br />
autocmd bufNewFile *.html 0r /tmp/template_vim.html</p>
<p>Sur le même principe, on peut bien-sûr enchaîner les templates, là, c&#8217;est une adaptation du tien.</p>
<p>Merci encore pour ton article de qualité !</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : yohann</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-5810</link>
		<dc:creator>yohann</dc:creator>
		<pubDate>Wed, 03 Jun 2009 18:13:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-5810</guid>
		<description>merci pour les explication c&#039;est très clair.
je rencontre cependant un probleme:
un saut de ligne est inseré a la fin du fichier:

exemple:
~/.vim/templates/php.php:

1 
~

vim new.php
1 
3
~

Je pense que c&#039;est la ligne d&#039;insertion originale qui est conservée et ajoutée à la fin du template.
Rencontre tu aussi ce probleme?
Y a t il un moyen pour que la dernière ligne du template corresponde à la dernière ligne du nouveau fichier?

d&#039;avance merci</description>
		<content:encoded><![CDATA[<p>merci pour les explication c&#8217;est très clair.<br />
je rencontre cependant un probleme:<br />
un saut de ligne est inseré a la fin du fichier:</p>
<p>exemple:<br />
~/.vim/templates/php.php:</p>
<p>1<br />
~</p>
<p>vim new.php<br />
1<br />
3<br />
~</p>
<p>Je pense que c&#8217;est la ligne d&#8217;insertion originale qui est conservée et ajoutée à la fin du template.<br />
Rencontre tu aussi ce probleme?<br />
Y a t il un moyen pour que la dernière ligne du template corresponde à la dernière ligne du nouveau fichier?</p>
<p>d&#8217;avance merci</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Asher256</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-5519</link>
		<dc:creator>Asher256</dc:creator>
		<pubDate>Thu, 19 Feb 2009 13:16:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-5519</guid>
		<description>Vim c&#039;est pour les vrais geeks qui ont un cerveau remplaçant l&#039;IDE :-P

Les IDEs, c&#039;est pour les autres :-P

:D</description>
		<content:encoded><![CDATA[<p>Vim c&#8217;est pour les vrais geeks qui ont un cerveau remplaçant l&#8217;IDE <img src='http://blog.asher256.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>Les IDEs, c&#8217;est pour les autres <img src='http://blog.asher256.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p> <img src='http://blog.asher256.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Edmeral</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-5509</link>
		<dc:creator>Edmeral</dc:creator>
		<pubDate>Tue, 17 Feb 2009 17:48:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-5509</guid>
		<description>je crois que utiliser un éditeur WYSIWYG ou un IDE sera mieux je comprends pas pourquoi utiliser Vim alors qui y en a des outils plus pratique à mon avis

http://edmeral.12r.org/</description>
		<content:encoded><![CDATA[<p>je crois que utiliser un éditeur <acronym title="What You See Is What You Get">WYSIWYG</acronym> ou un IDE sera mieux je comprends pas pourquoi utiliser Vim alors qui y en a des outils plus pratique à mon avis</p>
<p><a  href="http://edmeral.12r.org/" rel="nofollow">http://edmeral.12r.org/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Asher256</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-5299</link>
		<dc:creator>Asher256</dc:creator>
		<pubDate>Sun, 01 Feb 2009 02:10:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-5299</guid>
		<description>Il faut utiliser &quot;Vim&quot; et pas &quot;Vi&quot; pour que cela fonctionne.

sudo apt-get install vim

et lance Vim avec la commande &quot;vim&quot; et pas &quot;vi&quot; !</description>
		<content:encoded><![CDATA[<p>Il faut utiliser &laquo;&nbsp;Vim&nbsp;&raquo; et pas &laquo;&nbsp;Vi&nbsp;&raquo; pour que cela fonctionne.</p>
<p>sudo apt-get install vim</p>
<p>et lance Vim avec la commande &laquo;&nbsp;vim&nbsp;&raquo; et pas &laquo;&nbsp;vi&nbsp;&raquo; !</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : gil gam</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/comment-page-1/#comment-5296</link>
		<dc:creator>gil gam</dc:creator>
		<pubDate>Sat, 31 Jan 2009 21:22:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.asher256.com/?p=1062#comment-5296</guid>
		<description>Bonjour

en applicant le contneu de cet article sur une ubuntu intrepid dernier modèle (je cherche à me perfectionner dans vi) cela ne focntionne pas j&#039;ai une erreur 

E319: Sorry, the command is not available in this version: au bufNewFile *.html 0r ~/.vim/templates/xhtml.html
Press ENTER or type command to continue

Un idée pour y remédier ?

Merci</description>
		<content:encoded><![CDATA[<p>Bonjour</p>
<p>en applicant le contneu de cet article sur une ubuntu intrepid dernier modèle (je cherche à me perfectionner dans vi) cela ne focntionne pas j&#8217;ai une erreur </p>
<p>E319: Sorry, the command is not available in this version: au bufNewFile *.html 0r ~/.vim/templates/xhtml.html<br />
Press ENTER or type command to continue</p>
<p>Un idée pour y remédier ?</p>
<p>Merci</p>
]]></content:encoded>
	</item>
</channel>
</rss>

