Vim et snipMate (plug-in) - l'ajout de nouveaux extrait ne fonctionnera pas

StackOverflow https://stackoverflow.com/questions/4488786

  •  11-10-2019
  •  | 
  •  

Question

Je suis en train de créer un nouvel extrait de code à mon plug-in snipMate.

Je travaille avec certains fichiers appelés (à savoir) myfile.endfile

Tous les fichiers .endfile doit avoir le même « extrait », comme les fichiers .html. Donc, je l'ai fait

cp html.snippet endfile.snippet

dans mon ~ / .vim / répertoire des extraits.

SnipMate travaille avec tous les extraits présents, mais pas avec mon nouveau créé. Toutes les suggestions pour ce problème?

(BTW:. Après la création du nouveau fichier .snippet, j'ai couru commande :helptags ~/.vim/doc dans une instance de vim)

Était-ce utile?

La solution

Il est parce que Snipmate travaille avec filetype, qui est une option Vim ensemble lors de l'ouverture d'un fichier d'un type particulier.

Pour exemple, si vous ouvrez, "index.html" le filetype est automatiquement réglé sur html.

Pour voir comment cela fonctionne, faites:
:e $VIMRUNTIME/filetype.vim

En tant que test préliminaire, vous pouvez:
1. test.endfile ouvert
2. Type :set ft=endfile ou :set filetype=endfile
3. Vérifiez si vos extraits définis Tricoter

Pour ce faire ajouter automatiquement les éléments suivants dans votre .vimrc:
au BufNewFile,BufRead *.endfile set filetype=endfile

Cela signifie que chaque fois que vous lisez ou créez un nouveau fichier se terminant en endfilethe option filetype est réglé sur ENDFILE.

(Le type de fichier est une chaîne arbitraire, il ne doit pas être identique à l'extension de fichier)

Autres conseils

Vous pouvez attribuer des extraits sans modifier le type de fichier (ce qui est souhaitable, parce que la modification de la mise en évidence des ruptures filetype).

Je crois que la bonne façon de le faire dans la fourche maintenu de snipmate est de définir g :. snipMate.scope_aliases

Dans votre exemple, en supposant que vous avez un fichier « endfile.snippet », je crois que ce qui suit à votre .vimrc fonctionnerait:

let g:snipMate = {}
let g:snipMate.scope_aliases = {}
let g:snipMate.scope_aliases['html'] = 'endfile'

Si vous voulez que les deux extraits HTML et ENDFILE au travail pour les fichiers de filetype = 'html', utilisez:

let g:snipMate = {}
let g:snipMate.scope_aliases = {}
let g:snipMate.scope_aliases['html'] = 'html,endfile'

J'ai ajouté un demande traction snipmate d'avoir leur documentation mise à jour . Modifier Il a été fusionné.

Je l'ai trouvé pratique d'utiliser des extraits global lors de l'utilisation des extraits qui ont name.endfile rare.

Lorsque vous mettez vos extraits _. Snippets fichier dans le dossier des extraits, ils se mondialisent et sont accessibles dans tous les filetype.

Peut-être que cela répond pas directement à la question, mais beaucoup d'utilisateurs avec le même problème peut trouver cette pratique. Surtout si elles n'ont pas besoin d'avoir tout organisé dans divers dossiers et sont heureux d'avoir leurs propres extraits dans un fichier qui est accessible partout.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top