Plusieurs tampons, même fichier, différents paramètres

10

Est-il possible de modifier un fichier sous différents paramètres en même temps? Plus précisément, je voudrais avoir plusieurs tampons dans la même instance de Vim qui ont le même contenu (changer un tampon affecte immédiatement le contenu de l'autre tampon), mais des positions de curseur différentes, des marques différentes, une coloration syntaxique différente, etc.

Les cas d'utilisation courants incluent la modification de différentes parties du même fichier de manière indépendante (sans par exemple entrer en mode visuel dans une instance, casser la sélection de mode visuel actuelle dans l'autre instance), et la modification de fichiers au format mixte (par exemple HTML et Javascript) sans avoir à changer les paramètres . (Une autre approche pour le deuxième cas d'utilisation serait de modifier automatiquement les paramètres en fonction de la position du curseur, mais cela est hors de portée pour cette question.)

Un éditeur dont la mention pourrait certes choquer appelle cela des «tampons indirects».

Gilles 'SO- arrête d'être méchant'
la source

Réponses:

2

L'utilisation de plusieurs fenêtres pour afficher le même tampon vous permet de visualiser, modifier, sélectionner, ... sur différentes parties d'un tampon.

La mise en évidence de la syntaxe est plus compliquée, selon ce que vous voulez exactement. Vim prend déjà en charge la mise en évidence de différentes parties d'un tampon avec une syntaxe différente. Par exemple, si vous avez un tampon de type de fichier html, puis <style>balises seront représentées comme CSS, les <script>balises seront mises en évidence comme javascript, etc. Cela se fait à l'aide de la :syn includecommande, puis définir les régions de syntaxe pertinentes que la syntaxe doit être appliqué.

Une alternative consiste à utiliser la :ownsyntaxcommande pour spécifier la coloration syntaxique utilisée pour une fenêtre spécifique.

Les marques sont le point collant. Les marques minuscules sont spécifiques à un tampon et les marques majuscules sont globales, mais il n'y a pas de marques spécifiques aux fenêtres.

jamessan
la source
1
Si j'utilise plusieurs fenêtres, cela signifie-t-il qu'elles doivent toujours être affichées à l'écran? Que se passe-t-il si je ferme une fenêtre alors qu'une autre fenêtre affiche le même tampon, la position du curseur dans cette fenêtre est-elle perdue? Existe-t-il quelque chose comme :ownsyntaxpour d'autres paramètres, tels que l'indentation, la commande du compilateur, etc.?
Gilles 'SO- arrête d'être méchant'
@Gilles Vous pouvez avoir deux fenêtres qui ne sont jamais à l'écran ensemble en les plaçant dans des onglets séparés, conservant ainsi les paramètres spécifiques à la fenêtre, la position du curseur, etc. Cela peut aider, selon votre cas d'utilisation spécifique.
Rich