12
votes

Ouvrez des fichiers dans différentes fenêtres fractionnées dans Vim

J'ai quelques $ Quelqu'un) code> Array de 4 dossiers. Je veux ouvrir des fichiers de ces dossiers dans Vim. Ce qui suit les ouvre dans des onglets.

vim -p `for i in ${somePaths[@];}; do echo $i/src/main.cpp; done`


0 commentaires

4 Réponses :


3
votes

Vous pouvez essayer d'utiliser -O4 au lieu de -p .


1 commentaires

Pas très flexible En matière de division Windows horizontalement (la ligne de fractionnement est horizontale, les onglets sont verticaux), mais sont parfaits pour un démarrage et en fonction de la taille de votre écran appropriée.



4
votes

vim a : la commande verticale , qui pourrait être utile dans votre cas. Donnez ceci un essai: xxx


0 commentaires

6
votes

À part -P , Vim propose également le -o et -O arguments de ligne de commande pour des divisions horizontales / verticales. Malheureusement, ils ne peuvent pas être mélangés. Pour vous construire la possession de fenêtre personnalisée, vous devez transmettre les commandes de placement explicite via -c . Cet exemple xxx

crée une mise en page qui ressemble à ceci: xxx

Pour continuer à passer la liste des fichiers comme un seul bloc, vous pouvez utiliser Le fait que les numéros de mémoire tampon augmentent monotoniquement et se réfèrent aux numéros de mémoire tampon dans la commande: xxx


1 commentaires

Merci. Est-il possible de passer la liste de fichiers pour l'ouvrir avec cette mise en page?



2
votes

La solution acceptée ci-dessus est bonne et résolvère votre cas d'utilisation, mais je voudrais souligner une autre manière d'atteindre quelque chose de similaire sans effort ni configuration.

Vim a une prise en charge intégrée pour les sessions d'enregistrement, : h: mksession , ce que cela vous permet de faire est d'enregistrer la session VIM actuelle (fichiers ouverts, divisions, onglets, fenêtres, etc., en fonction de la valeur de : h 'sessionOptions' . Bien que les sessions d'enregistrement et de maintien puissent être légèrement fastidieuses, ce que je suggérerais d'utiliser xolox / vim-session (je l'ai utilisé précédemment) ou TPOPO / Vim-Obsession < / Code> (Utilisez-le maintenant). Cela vous permettra de ré-ouvrir une session exactement comme vous l'avez laissé!

Voici ce que je fais, j'ai cet extrait dans mon ~ / .zshrc: < / p> xxx

est essentiellement vérifiant si VIM est lancé si Vim est lancé, sans aucun argument et vérifie si une session existe déjà et le chargent ou en utilisant TPOPOP / VIM- obsession commence à enregistrer une nouvelle session, qui sera être chargé la prochaine fois que vous ouvrez Vim. Le nom de la session n'est que le nom du répertoire que vous lancez VIM in. Si vous passez des arguments à Vim, mais vous vous comportez comme si vous vous attendez et ne vous inquiétez pas de vous inquiéter des sessions.

de cette façon , Je peux maintenant simplement lancer Vim dans n'importe quel répertoire et la première fois que je le ferai, il commencera à enregistrer une nouvelle session, alors que sur les invocations ultérieures, il chargera cette session et TPOPO / VIM-obsession le garde mise à jour .


0 commentaires