Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/10/2022, à 16:51

DonutMan75

[RESOLU] Vim : forcer la coloration latex avec des fichiers .beam

Bonjour à tous,

je souhaite créer deux squelettes vim pour des fichiers .tex (document Latex) et .beam (document Beamer).

Ces deux squelettes seront sensiblement différents, c'est pourquoi je souhaite différencier les documents .tex qui seront des articles et les documents.beam qui seront des présentations Beamer.

Ces templates sont correctement lus par vim lorsque je créé un nouveau fichier, hélas la coloration syntaxique type Latex ne fonctionne que pour les fichiers .tex...

Quelqu'un sait-il comment forcer la coloration syntaxique sous vim pour la positionner sur un langage précis ?

Voici mes templates (beam et latex) qui sont, à ce stade, identiques pour le débugage :

$ more ~/vim/templates/skeleton.tex
\documentclass[a4paper,12pt]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}

\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{tikz}

\title{a}
\author{Donut Man}
\date{\today}

\begin{document}
\maketitle

\end{document}
$ diff ~/vim/templates/skeleton.tex ~/vim/templates/skeleton.beam
$

Et voici mon .vimrc :

syntax on		" Coloration syntaxique activée

set t_ut=		" Background Color
set number		" Numérotation des lignes
set nocompatible	" Pas de rétrocompatibilité avec les précédentes versions
set backspace=2
set backspace=indent,eol,start
set fileencoding=utf-8
set autoindent

" Colorscheme selon l'heure
if strftime("%H") < 12
     colorscheme Tomorrow-Night
     "echo "setting ColorScheme to Tomorrow-Night"
else
     colorscheme Tomorrow-Night
     "echo "setting ColorScheme to Tomorrow-Night"
endif


" Templates
autocmd BufNewFile *.tex 0r ~/.vim/templates/skeleton.tex
autocmd BufNewFile *.beam  0r ~/.vim/templates/skeleton.beam
autocmd BufNewFile *.sh  0r ~/.vim/templates/skeleton.sh
autocmd BufNewFile *.c  0r ~/.vim/templates/skeleton.c

autocmd BufReadPost *.txt call BrightView()

" Map command
autocmd BufNewFile,BufReadPost *.tex call MacroLatex()


augroup newFileDetection
    autocmd CursorMovedI * call CheckFileType()
augroup END

"autocmd newFileDetection

function CheckFileType()
    if exists("b:countCheck")==0 "Premier appel, la variable n'est pas définie
        let b:countCheck = 0
    endif

    let b:countCheck += 1
    "echo "checking..."
    if &filetype == "" && b:countCheck > 20 && b:countCheck < 200
        filetype detect
    elseif b:countCheck >= 200 || &filetype != ""
        autocmd! newFileDetection
    endif
endfunction


function BrightView()
    colorscheme space_vim_theme "cosmic_latte
    redraw
endfunction


function MacroLatex()
    map f I \begin{figure}
endfunction

Vous remarquerez la fonction CheckFileType() qui, lors de l'édition d'un nouveau document sans extension, utilise les caractères tapés (entre 20 et 200) pour déterminer le type de fcontenu pour adapter la coloration syntaxique..

A moins que ce soit un problème XY et qu'il existe une façon plus élegante de séparer les templates LaTeX article des templates LaTeX Beamer...

Merci par avance pour vos idées et suggestions smile

Donut

Dernière modification par DonutMan75 (Le 02/11/2022, à 10:10)

Hors ligne

#2 Le 01/11/2022, à 15:10

Vobul

Re : [RESOLU] Vim : forcer la coloration latex avec des fichiers .beam

Alors y'a sûrement plusieurs façons de faire, mais moi j'ai dans mon ~/.vim/after/ftplugin un tex.vim, hcl.vim, etc... Ces fichiers contiennent des instructions pour les tab et aussi pour la coloration syntaxique.

setlocal syntax=conf

Donc un beam.vim avec syntax=tex devrait fonctionner.


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 02/11/2022, à 10:12

DonutMan75

Re : [RESOLU] Vim : forcer la coloration latex avec des fichiers .beam

Bonjour Vobul,
super cette solution fonctionne nickel !
Je ne connaissais pas du tout ftplugin

Pour ceux que ça intéresse :
https://www.jackfranklin.co.uk/blog/usi … in-in-vim/

Bonne journée !

Donut

Hors ligne