La question concerne vim, et non directement LaTeX: comment intégrer dans une macrocommande une séquence qui supprime une indentation, reconduite automatiquement par un retour à la ligne.

Suite à ma question précédente «Où mettre les macrocommandes de vim», j'ai fini par trouver ici ($VIM/ftplugin/tex.vim) et réalisé la macro souhaitée. Cette page montre l'intérêt et explique comment réaliser une macro plus pratique avec la syntaxe «IMAP('raccourci', "développé avec <+place holder+>", 'type')

Malheureusement, je ne parviens pas à reproduire parfaitement la macro standard de vim (avec imap) qui est parfaite, avec la syntaxe IMAP() de la suite vim-latex.

Cette macro prépare l'écriture d'une footnote en l'isolant de sa ligne d'appel: La macro standard et qui fonctionne bien est la suivante:

imap FTN %<CR><ESC>V<.....I\footnote{%<CR>%<CR>}<CR><++><ESC>2kI
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Elle est un peu bricolée: la séquence « V<..... » sélectionne la ligne pour supprimer son indentation par la commande « < », répétée par chaque point.

la séquence « 2kI » renvoie à la ligne qui suit l'appel de note. Le système des place holder de vim-latex est un réel avantage, plus sur et plus confortable (visible).

En revanche, je ne trouve pas le moyen d'appliquer cette fonction avec la forme trouvée avec la syntaxe IMAP:

:call IMAP('ftn', "%\< CR>\< ESC>I\\footnote{%\< CR><++>%\< CR>}\< CR><++>\ <ESC> <++>", 'tex')
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Cette fonction manquante devrait se trouver juste avant la commande « I », qui ouvre en écriture au début du texte écrit sur la ligne (après les espaces de tabulation) et non au début absolu de la ligne comme je le croyais. (Les blancs qui suivent la séquence «< » ne sont pas dans la macro, ajoutés pour que le code soit correctement affiché ici)

alt text

Les lignes 8 à 12 montrent le résultat souhaité, réalisé par la commande standard imap

Les lignes 2 à 6 montrent le résultat insatisfaisant, réalisé par la commande IMAP().

Posée 25 Oct '21, 14:51

joseph-tux's gravatar image

joseph-tux
52923565
Taux d'acceptation : 5%

La macro idéale devrait, en plus, rétablir le niveau de tabulation à la sortie de la note.

(25 Oct '21, 14:54) joseph-tux joseph-tux's gravatar image
1

La réponse existe: il suffit de remplacer le premier carriage return: \< CR>

par un new line: \< NL>

(25 Oct '21, 15:23) joseph-tux joseph-tux's gravatar image

La macro qui marche:

:call IMAP('ftn', "%\< NL>\< ESC>I\\footnote{%\< NL><++>%\< CR>}\< CR><++>", 'tex')
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 25 Oct '21, 15:30

joseph-tux's gravatar image

joseph-tux
52923565
Taux d'acceptation : 5%

Votre réponse
[Masquer l'aperçu]

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Mots-clés de la question :

×3
×3

Question posée : 25 Oct '21, 14:51

Question vue : 2,550 fois

Dernière mise à jour : 25 Oct '21, 15:33

C'est votre première visite ici ? Consultez la FAQ !

×