Lorsque j'ouvre vim
avec plusieurs fichiers ( vim f1 f2 ...
), comment puis-je les ouvrir directement dans des onglets, sans les utiliser -p
?
Je cherche à séparer le comportement du shell du comportement vim, en supprimant les vim
alias basés sur, etc. C'est pourquoi je préférerais ne pas utiliser d'alias, etc. (par conséquent, non -p
).
Je suis sûr que celui-ci a été demandé sur quelques sites SE (comme SO ). Cependant, je ne suis pas en mesure de juger de la meilleure façon de procéder, alors j'espère également une note expliquant pourquoi une méthode suggérée est bonne.
Pour le poste SO particulier lié:
la réponse acceptée le fait
tabpagemax=9999
. Appelez cela un parti pris personnel, mais je vois une limite fixée à un grand nombre et je pense qu'il y a quelque chose qui ne va pas (ce que je ressentirais si je voyaischmod 777
).:au VimEnter * set tabpagemax=9999|sil tab ball|set tabpagemax&vim
l'autre réponse conduit à ouvrir un onglet supplémentaire vide, tout en étant beaucoup plus concis.
:autocmd VimEnter * argdo tabedit
J'espère une réponse qui n'a pas d'onglet supplémentaire ouvert et ne fixe pas de limite à une grande valeur (ou explique pourquoi ce n'est pas une mauvaise chose).
:qa
par la force de l'habitude. Si c'est le seul avantage, j'irais avec l'autre, car cela semble plus simple.Réponses:
Après quelques expérimentations, j'ai trouvé que c'était le meilleur moyen; il doit se comporter comme
vim -p
:Tout d'abord,
tab all
ouvre toutes les entrées de la liste d'arguments (:args
) dans un onglet. La liste d'arguments est une liste de fichiers que vous avez transmis à Vim au démarrage. Et letabfirst
s'assure que le premier onglet est focalisé plutôt que le dernier (c'est facultatif).Nous ne faisons rien de tout cela si
&diff
est défini; si c'est le cas, nous utilisonsvimdiff
ouvim -d
, où nous voulons avoir 2 fenêtres, et non 2 onglets.Dans cette réponse, j'ai également écrit un peu sur la liste des arguments et
tab all
qui peut être d'intérêt.Quelques notes sur les autres solutions:
tab ball
ouvre un onglet pour chaque entrée de la liste des tampons , pas la liste des arguments. Le "problème" est que la liste des tampons peut être enregistrée dans le fichier viminfo à la fermeture et restaurée au démarrage (si elle%
est'viminfo'
activée, non activée par défaut). Donc, si vous tapez simplement,vim
cela ouvrira ces fichiers. Je considère que cela n'est pas souhaité, même si je peux imaginer que certaines personnes le trouvent utile; alors utilisez ce que vous préférez.set tabpagemax=9999
n'est pas requis; la valeur par défaut est10
, et cela devrait être bien. Vous pouvez augmenter cela dans votre vimrc si vous en voulez plus, mais9999
c'est un nombre stupide. Si vous utilisez-p
, vous obtenez également destabpagemax
onglets. Donc, cela devrait respecter cela. N'oubliez pas que cela ouvrira (lira) un tampon au démarrage, donc c'est plutôt lent.autocmd VimEnter * argdo tabedit
est juste la même façon de diretab all
. Cependant, le tampon initial n'est pas effacé, vous vous retrouvez donc avec cet onglet supplémentaire (tab all
remplace tous les onglets). Pour résoudre ce problème, vous avez besoin de la solution de contournement dans la réponse de Josh Petrie.la source
Je pense que l'ajout de quelque chose comme ça à votre
.vimrc
peut résoudre vos problèmes (notez cependant que je ne l'utilise pas réellement et que je n'ai fait que des tests minimes, cela peut faire des choses étranges dans certains cas):Comme vous l'avez noté,
argdo tabedit
vous laissera un onglet supplémentaire vide. Vous pouvez donc simplement fermer cet onglet automatiquement. Cependant, vous ne pouvez pas simplement invoquertabclose
non coché, ou vim vous donnera une erreur lorsque vous le lancerez sans arguments ni fichier unique (vous "ne pouvez pas fermer le dernier onglet"). Au lieu de cela, vérifiez si le nombre total d'onglets est supérieur à un (c'est ce qui$
provoquetabpagenr
le retour) et ce n'est qu'alors que vous devez fermer le dernier onglet.Cela dit, je pense qu'il vaut la peine de souligner que les onglets de vim ne sont pas tout à fait comme les onglets des autres éditeurs , et c'est quelque chose à garder à l'esprit lorsque vous envisagez d'utiliser les onglets dans votre flux de travail (vous semblez être au courant de cela, mais je veulent faire le point au profit des futurs lecteurs qui pourraient ne pas le faire afin qu'ils puissent prendre leurs propres décisions).
la source