<?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>Espace d&#039;Asher256 &#187; Vim</title>
	<atom:link href="http://blog.asher256.com/tag/vim/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.asher256.com</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jan 2012 21:45:37 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Vim : comment avoir un Système de &#171;&#160;Templates&#160;&#187; pour programmeur HTML, PHP, C++, Python, etc. ?</title>
		<link>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/</link>
		<comments>http://blog.asher256.com/vim-avoir-un-systeme-de-templates-pour-programmeur/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 10:00:03 +0000</pubDate>
		<dc:creator>Asher256</dc:creator>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Planet-Ubuntu]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://blog.asher256.com/?p=1062</guid>
		<description><![CDATA[Dans cet article, vous découvrirez comment faire en sorte que Vim ait un système de templates. Les templates sont assez utiles pour gagner du temps. Une fois que vous aurez appliqué l&#8217;astuce de cet article, Vim remplira automatiquement vos nouveau fichiers (vierges donc) avec le contenu de votre choix ! Les étapes pour avoir le [...]]]></description>
			<content:encoded><![CDATA[<p>Dans cet article, vous découvrirez comment faire en sorte que <a  href="http://blog.asher256.com/vim-vimrc-gvimrc-personnalise-editeur-avance-programmation-correction-orthographique-orthographe-raccourcis-utiles-clavier-backup/"><strong>Vim</strong></a> ait un système de <strong>templates</strong>.</p>
<p>Les <strong>templates</strong> sont assez utiles pour <a  href="http://blog.asher256.com/11-astuces-pour-gagner-du-temps-quand-vous-travaillez-devant-votre-ordinateur/"><strong>gagner du temps</strong></a>. Une fois que vous aurez appliqué l&#8217;astuce de cet article, <strong>Vim</strong> remplira automatiquement vos nouveau fichiers (vierges donc) avec le contenu de votre choix !</p>
<p style="text-align: center;"><img class="aligncenter colorbox-1062" src="/blog/images/text-editor.png" alt="text editor Vim : comment avoir un Système de Templates pour programmeur HTML, PHP, C++, Python, etc. ?"  title="Vim : comment avoir un Système de Templates pour programmeur HTML, PHP, C++, Python, etc. ?" /></p>
<p><span id="more-1062"></span></p>
<h2>Les étapes pour avoir le système de templates avec Vim</h2>
<p>Nous allons prendre pour exemple les fichiers <acronym title="HyperText Markup Language">HTML</acronym>. Après les quelques manipulations ci-dessous, votre éditeur de texte Vim remplira les nouveaux fichiers <acronym title="HyperText Markup Language">HTML</acronym> avec les premières balises.</p>
<p></p>
<p><strong>Avertissement :</strong> les instructions ci-dessous ont été exécutées dans un système de type UNIX (<acronym title="GNU is Not UNIX">GNU</acronym>/Linux pour être précis). Sous Windows, il est possible de faire la même chose, mais certaines choses pourraient être différentes. Comme le chemin ~/.vimrc par exemple.</p>
<p>La première chose à faire est de créer le répertoire <em>~/.vim/templates</em> :</p>
<pre>mkdir -p ~/.vim/templates</pre>
<p>Ensuite, créez le fichier <em>~/.vim/templates/xhtml.html</em> pour y mettre ceci :</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//<acronym title="World Wide Web Consortium">W3C</acronym>//<acronym title="Document Type Definition">DTD</acronym> <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> 1.0 Strict//EN" "<span class="external free">http://www.w3.org/TR/xhtml1/<acronym title="Document Type Definition">DTD</acronym>/xhtml1-strict.dtd</span>"&gt;
&lt;html xmlns="<span class="external free">http://www.w3.org/1999/xhtml</span>" xml:lang="fr" lang="fr"&gt;
  &lt;head&gt;
    &lt;title&gt;Titre de la page&lt;/title&gt;
    &lt;meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /&gt;
    &lt;meta http-equiv="Content-Language" content="fr" /&gt;
    &lt;meta name="author" content="Prénom Nom" /&gt;
    &lt;meta name="generator" content="vim" /&gt;
    &lt;meta name="keywords" lang="fr" content="" /&gt;
    &lt;meta name="description" content="la description de la page" /&gt;
   &lt;/head&gt;
&lt;body&gt;
    &lt;p&gt;Contenu !&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Ajoutez cette ligne dans le fichier ~/.vimrc :</p>
<pre>au bufNewFile *.html 0r ~/.vim/templates/xhtml.html</pre>
<p>Enfin, fermez Vim, puis ouvrez un fichier html avec :</p>
<pre>vim $HOME∕hello.html</pre>
<p>Vous verrez que le fichier sera rempli avec ce qu&#8217;on a mis dans <em>~/.vim/templates/xhtml.html</em> !</p>
<h2>Comment avoir un système de templates Vim avec les autres langages de programmation, comme <acronym title="Pre-Hypertext Processing">PHP</acronym> ?</h2>
<p>Un exemple vaut mieux qu&#8217;un long discours !</p>
<p>Si vous souhaitez avoir un système de templates pour le <acronym title="Pre-Hypertext Processing">PHP</acronym>, la procédure est similaire à ce qu&#8217;on a déjà fait plus haut pour le <acronym title="HyperText Markup Language">HTML</acronym>. Il vous faudra seulement remplacer &laquo;&nbsp;*.html&nbsp;&raquo; par &laquo;&nbsp;*.php&nbsp;&raquo; et &laquo;&nbsp;~/.vim/templates/xhtml.html&nbsp;&raquo; par &nbsp;&raquo; &laquo;&nbsp;~/.vim/templates/php.php&nbsp;&raquo; dans la commande que vous avez ajouté dans <em>~/.vimrc</em> (n&#8217;oubliez pas aussi de créer le fichier php.php dans ~/.vim/templates/  pour y mettre le contenu de ce qui remplacera les futurs fichiers vierges ouverts !).</p>]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Vim : mon vimrc personnalisé, pour mieux profiter de cet éditeur avancé !</title>
		<link>http://blog.asher256.com/vim-vimrc-gvimrc-personnalise-editeur-avance-programmation-correction-orthographique-orthographe-raccourcis-utiles-clavier-backup/</link>
		<comments>http://blog.asher256.com/vim-vimrc-gvimrc-personnalise-editeur-avance-programmation-correction-orthographique-orthographe-raccourcis-utiles-clavier-backup/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 13:55:59 +0000</pubDate>
		<dc:creator>Asher256</dc:creator>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[Meilleurs Articles]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Planet-Ubuntu]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://blog.asher256.com/?p=179</guid>
		<description><![CDATA[Vim a depuis assez longtemps été mon éditeur de texte préféré ! C&#8217;est un peu mon couteau suisse de l&#8217;édition de texte. Je l&#8217;utilise pour rédiger mes notes, modifier les fichiers de configuration de mes serveurs distants ou programmer (GShutdown ou Jargon Informatique ont été entièrement écrits avec cet éditeur !). Les aspects qui m&#8217;ont [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter colorbox-179" src="/blog/images/text-editor.png" alt="text editor Vim : mon vimrc personnalisé, pour mieux profiter de cet éditeur avancé !"  title="Vim : mon vimrc personnalisé, pour mieux profiter de cet éditeur avancé !" /></p>
<p style="text-align: left;"><strong>Vim</strong> a depuis assez longtemps été mon éditeur de texte préféré !</p>
<p>C&#8217;est un peu mon <strong>couteau suisse</strong> de l&#8217;<strong>édition de texte</strong>. Je l&#8217;utilise pour <strong>rédiger mes notes</strong>, modifier les <strong>fichiers de configuration</strong> de mes <strong>serveurs distants</strong> ou programmer (<a  href="http://gshutdown.tuxfamily.org/">GShutdown</a> ou <a  href="http://jargon.tuxfamily.org/">Jargon Informatique</a> ont été entièrement écrits avec cet éditeur !).</p>
<p>Les aspects qui m&#8217;ont toujours séduits dans cet éditeur c&#8217;est son côté geek, avec ses centaines de fonctions permettant de faire tout et n&#8217;importe quoi, et son extensibilité (j&#8217;en parlerai dans un autre billet, pour vous faire découvrir les plugins à ne pas rater), grâce aux plugins.<span id="more-179"></span></p>
<p>Une des choses légèrement ennuyantes avec Vim, quand on débute, c&#8217;est qu&#8217;il n&#8217;est pas par défaut configuré pour qu&#8217;on profite de toutes ses jolies fonctionnalités ; qui devraient pourant être activées d&#8217;office ! C&#8217;est pour cette raison que, avec le temps, j&#8217;ai créé puis amélioré mon <strong>vimrc</strong>, pour que Vim me permette de mieux travailler.</p>
<p></p>
<p>Pour vous faire gagner du temps, j&#8217;ai décidé de mettre en ligne mon vimrc, pour que tout intéressé puisse l&#8217;étudier, l&#8217;utiliser, le modifier, etc. et pourquoi pas proposer des améliorations !</p>
<p>Grâce au Vimrc disponible ci-dessous, vous profiterez des avantages suivants :</p>
<ul>
<li>Des backups automatiques dans le répertoire ~/.vim/backup (pour ne pas encombrer vos répertoires de fichiers de sauvegarde finissant avec ~ par exemple)</li>
<li>Une indentation activée automatiquement lorsque vous éditerez un code source. Idem pour la colorisation syntaxique.</li>
<li>Quand vous chercherez dans votre texte avec un mot-clé, ce mot-clé se voit attribué une couleur de fond.</li>
<li>Les fichiers avec les extensions *.o, *.dll, *.so et *.a sont ignorés, quand vous utilisez l&#8217;astérisque (gain de temps pour sélectionner le fichier qui vous intéresse).</li>
<li>Quand vous utilisez l&#8217;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.</li>
<li>Les PDFs sont lus d&#8217;une manière transparente, en utilisant pdftotext (logiciel à installer)</li>
<li>Des raccourcis claviers utiles sont ajoutés, comme &laquo;&nbsp;,lf&nbsp;&raquo;, pour avoir la correction orthographique en français, &laquo;&nbsp;,le&nbsp;&raquo;, pour avoir celle en anglais, &laquo;&nbsp;,ln&nbsp;&raquo; pour désactiver la correction orthographique, &laquo;&nbsp;,t&nbsp;&raquo; pour ouvrir un nouvel onglet, &laquo;&nbsp;,w&nbsp;&raquo; pour le fermer, &laquo;&nbsp;,m&nbsp;&raquo; pour cacher le menu de gvim, ctrl-a pour tout sélectionner, ctrl-c pour copier et ctrl-p pour coller et &laquo;&nbsp;,h&nbsp;&raquo; pour convertir un code source colorié en <acronym title="HyperText Markup Language">HTML</acronym>.</li>
<li>Et bien d&#8217;autres options, que je vous invite à découvrir dans le script (que j&#8217;ai commenté pour vous rendre sa compréhension plus facile. Néanmoins, à la moindre lacune, n&#8217;hésitez pas à passer par l&#8217;aide de vim &laquo;&nbsp;:help&nbsp;&raquo; ou à poster un commentaire !)</li>
</ul>
<p>Pour installer le script Sous <acronym title="GNU is Not UNIX">GNU</acronym>/Linux, mettez son contenu dans le fichier &laquo;&nbsp;~/.vimrc&nbsp;&raquo;.</p>
<p>Le vimrc personnalisé (qui est aussi <a  title="Vimrc d'Achraf Cherti (Asher256)" href="http://blog.asher256.com/mes-fichiers/programmes/vimrc_asher256.vim">disponible en téléchargement</a>) :</p>
<pre lang="vim">scriptencoding utf-8
"=============================================================================
"
" Fichier de configuration VIM personnalisé (meilleur pour la programmation,
" raccourcis clavier utiles, etc. pour mieux profiter de cet excellent
" éditeur).
"
" Auteur : Asher256
" Email  : contact@asher256.com
"
" Licence : <acronym title="GNU General Public License">GPL</acronym>
"
" Site: http://blog.asher256.com/
"
"=============================================================================

" Options {{{1

" Options Internes {{{2

" Mode non compatible avec Vi
set nocompatible 

" Le backspace
set backspace=indent,eol,start

" Activer la sauvegarde
set backup

" un historique raisonnable
set history=100

" undo, pour revenir en arrière
set undolevels=150

" Suffixes à cacher
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

" Backup dans ~/.vim/backup
if filewritable(expand("~/.vim/backup")) == 2
    " comme le répertoire est accessible en écriture,
    " on va l'utiliser.
	set backupdir=$HOME/.vim/backup
else
	if has("unix") || has("win32unix")
        " C'est c'est un système compatible UNIX, on
        " va créer le répertoire et l'utiliser.
		call system("mkdir $HOME/.vim/backup -p")
		set backupdir=$HOME/.vim/backup
	endif
endif

" Inclusion d'un autre fichier avec des options
if filereadable(expand("~/.vimrc_local.vim"))
    source ~/.vimrc_local.vim
endif

" Activation de la syntaxe
if has("syntax")
    syntax on
endif

" Quand un fichier est changé en dehors de Vim, il est relu automatiquement
set autoread

" Aucun son ou affichage lors des erreurs
set errorbells
set novisualbell
set t_vb=

" Quand une fermeture de parenthèse est entrée par l'utilisateur,
" l'éditeur saute rapidement vers l'ouverture pour montrer où se
" trouve l'autre parenthèse. Cette fonction active aussi un petit
" beep quand une erreur se trouve dans la syntaxe.
set showmatch
set matchtime=2

" Afficher la barre d'état
set laststatus=2

" }}}2

" Options de recherche {{{2 

" Tout ce qui concerne la recherche. Incrémentale
" avec un highlight. Elle prend en compte la
" différence entre majuscule/minuscule.
set incsearch
set noignorecase
set infercase

" Quand la rechercher atteint la fin du fichier, pas
" la peine de la refaire depuis le début du fichier
set hlsearch

" }}}2

" Options d'affichage texte {{{2

" Ne pas nous afficher un message quand on enregistre un readonly
set writeany

" Afficher les commandes incomplètes
set showcmd

" Afficher la position du curseur
set ruler

" Désactiver le wrapping
set nowrap

" Options folding
set foldmethod=marker

" Un petit menu qui permet d'afficher la liste des éléments
" filtrés avec un wildcard
set wildmenu
set wildignore=*.o,*#,*~,*.dll,*.so,*.a
set wildmode=full

" Format the statusline
set statusline=%F%m\ %r\ Line:%l\/%L,%c\ %p%%

" }}}2

" Options d'affichage <acronym title="Graphical User Interface">GUI</acronym> {{{2

" Configuration de la souris en mode console
" ="" pas de souris par défaut
"set mouse=a

" Améliore l'affichage en disant à vim que nous utilisons un terminal rapide
set ttyfast

" Lazy redraw permet de ne pas mettre à jour l'écran
" quand un script vim est entrain de faire une opération
set lazyredraw

if has("gui_running")
	map &lt;S-Insert&gt; &lt;MiddleMouse&gt;
	map &lt;S-Insert&gt; &lt;MiddleMouse&gt;

	set mousehide " On cache la souris en mode gui
	set ch=2 " ligne de commande dans deux ligne
endif

" }}}2

" Noms des fichiers {{{2

" faire en sorte que le raccourci CTRL-X-F
" marche même quand le fichier est après
" le caractère égal. Comme :
" variable=/etc/&lt;C-XF&gt;
set isfname-==

" }}}2

" }}}1

" Autocmd {{{1

set cindent
"set autoindent
"set smartindent

if has("autocmd")
	" Détection auto du format
	" + activer indent
	filetype plugin indent on

    augroup divers " {{{2
        au!
		" Textwidth de 78 pour tous les fichiers texte
		autocmd FileType text setlocal textwidth=78

		" Remet la position du curseur comme elle était avant
		autocmd BufReadPost *
		\ if line("'\"") &gt; 0 &amp;&amp; line("'\"") &lt;= line("$") |
		\   exe "normal g`\"" |
		\ endif

        " La valeur des tabs par défaut
        autocmd BufNewFile,BufRead * call ChangeTabSize(4, 0)

		" Ne pas faire de wrap dans les fichiers ChangeLog
		autocmd BufNewFile,BufRead ChangeLog set nowrap textwidth=0
		autocmd BufNewFile,BufRead ChangeLog call ChangeTabSize(8, 0)

        " PKGBUILD
		autocmd BufNewFile,BufRead PKGBUILD set syntax=sh
    augroup END " }}}2

    augroup pdf " {{{2
        au!
		autocmd BufReadPre *.pdf set ro
		autocmd BufReadPost *.pdf %!pdftotext -nopgbrk "%" - | fmt -csw78
    augroup END " }}}2
endif

" }}}1

" Fonctions {{{1

" Fonctions utilisée par vimrc {{{2

function! ChangeTabSize(tab_size, expandtab)
    execute("set tabstop=".a:tab_size." softtabstop=".a:tab_size." shiftwidth=".a:tab_size)

    if a:expandtab != 0
        execute("set expandtab")
    else
        execute("set noexpandtab")
    endif
endfunction

" }}}2

" Les fonctions utiles pour l'utilisateur {{{2

" Aller dans le répertoire du fichier édité.
function! ChangeToFileDirectory()
	if bufname("") !~ "^ftp://" " C'est impératif d'avoir un fichier local !
		lcd %:p:h
	endif
endfunction

map ,fd :call ChangeToFileDirectory()&lt;CR&gt;

" Entrer la commande ":e" dans le répertiore du fichier édité
if has("unix")
    map ,e :e &lt;C-R&gt;=expand("%:p:h") . "/" &lt;CR&gt;
else
    map ,e :e &lt;C-R&gt;=expand("%:p:h") . "\" &lt;CR&gt;
endif

" }}}2

" }}}1

" Raccourcis clavier {{{1

" Vim 7 spell checker
if has("spell")
    setlocal spell spelllang=
    " Language : FR
    map ,lf :setlocal spell spelllang=fr&lt;cr&gt;
    " Language : EN
    map ,le :setlocal spell spelllang=en&lt;cr&gt;
    " Language : Aucun
    map ,ln :setlocal spell spelllang=&lt;cr&gt;
endif

set spellsuggest=5
autocmd BufEnter *.txt set spell
autocmd BufEnter *.txt set spelllang=fr

" Tabs
map ,t :tabnew&lt;cr&gt;
map ,w :tabclose&lt;cr&gt;
imap &lt;C-t&gt; &lt;Esc&gt;&lt;C-t&gt;
imap &lt;C-w&gt; &lt;Esc&gt;&lt;C-w&gt;
map &lt;tab&gt; gt 

" Cacher le menu
map ,m :set guioptions=+M&lt;cr&gt;

" Mode normal
map ,mn :set guifont=&lt;cr&gt;

" Mode programmation
map ,mp :set guifont=Monospace\ 9&lt;cr&gt;

" Sélectionner tout
map &lt;C-a&gt; ggVG

" Copier (le gv c'est pour remettre le sélection)
map &lt;C-c&gt; "+ygv

" Couper
map &lt;C-x&gt; "+x

" Coller
map &lt;C-p&gt; "+gP

" Désactiver le highlight (lors d'une recherche par exemple)
map &lt;F2&gt; :let @/=""&lt;cr&gt;

" Convertir un html
map ,h :runtime syntax/2html.vim&lt;cr&gt;

" encoder rapidement
map ,c ggVGg?

" }}}1

" Les plugins Vim et leurs options {{{1

" Gérer les fichiers man
runtime ftplugin/man.vim 

" }}}1

" vim:ai:et:sw=4:ts=4:sts=4:tw=78:fenc=utf-8:foldmethod=marker</pre>]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
	</channel>
</rss>

