si vous vous éditez des fichiers php contenant principalement du html, voici quelques astuces :
* installer le paquet exuberant-ctags
* installer par exemple le plugin taglist (
http://www.vim.org/scripts/script.php?script_id=273), si vous en avez d'autres à proposer je suis preneur ^^
ensuite, quelques trucs :
* dans ~/.ctags :
--langmap=html:.htm.html.phtm.phtml.php
--regex-html=/^[[:space:]]*<h.*id="(.*)".*>/\1/i,titre/
La première ligne demande à ctags de considérer les fichiers *.php
comme du html. Par défaut, ctags tague les ancres nommées :
<a name="monNom" ...>
La seconde ligne --regex-html lui demande de taguer aussi les titres de la forme :
<h1 id="monId" ...>
(ou h2, ..., h6)
* dans le vimrc :
" Taglist
nnoremap <silent> <F10> :TlistToggle<cr>
augroup filetypedetect
" Php ---> html
au BufEnter,BufRead *.php setlocal filetype=html
augroup END
let Tlist_Ctags_Cmd = 'ctags'
let tlist_html_settings = 'html;i:titres;a:ancres'
Le BufRead est nécessaire, taglist s'en sert pour déterminer le type de fichier. Même si vous faites un set ft=html à la main, ce n'est pas suffisant, le plugin modifie temporairement lui-même le type de fichier au moyen des autocommandes liées à BufRead.
Reste à lire la doc du plugin ... qq trucs pratiques :
:TlistToggle ---> pour afficher/cacher le panneau latéral contenant les tags (ça vaut la peine de le mapper, F10 dans mon exemple)
:TlistAddFile * ---> pour ajouter tous les fichiers du répertoire
:TlistSessionSave FichierSession --> pour sauver les tags
:TlistSessionLoad FichierSession ---> pour charger les tags
Par défaut, il remplit la liste des tags avec les fichiers que vous éditez. Vos tags sont classés par fichier, puis par type (ancre, titre, ...). Le plus beau est que le tout est foldé (essayez zo, zc, zM, zR dans le panneau pour voir 😉)
Le système est indépendant d'un fichier tags présent dans le répertoire, donc ça n'interfère pas avec le système classique des ctrl-], ctrl-T, :tag, :tselect, etc.