45 votes

Ouvrir des fichiers dans Gvim existant dans plusieurs (nouveaux) onglets

J'ai mis quelques alias dans mon .bashrc pour ouvrir un groupe de fichiers de projet dans gvim, chacun dans leur propre onglet:

gvim -p <list of file names using absolute paths>

C'est bien beau, sauf qu'il y a plusieurs groupes de fichiers je pourrais avoir besoin de vous déplacer entre à un moment donné (mon projet actuel utilise Ruby on Rails, de sorte que explique que). Ce qui serait vraiment génial si je pouvais ajouter de nouveaux onglets à une instance existante de gvim. Dans mon dernier poste, j'ai travaillé sur Vista, je l'ai contourné ce problème en ouvrant un tas de vide onglets dans gvim, ce qui m'a permis de faire un clic droit sur un nom de fichier et choisissez "Ouvrir dans existants Sans Nom gvim." Maintenant, j'utilise Ubuntu et il n'y a pas une telle chose sur le menu contextuel. Est-il possible de le faire à partir de la ligne de commande?

71voto

Ayman Hourieh Points 39435

Si vim a été compilé avec le client-serveur option, vous pouvez le faire. Commencez votre vim exemple avec l'indicateur suivant:

$ gvim --servername GVIM  # GVIM is the server name. It can be anything.

Pour ouvrir plusieurs onglets dans ce cas, vous pouvez exécuter la commande:

$ gvim --servername GVIM --remote-tab file1 file2 file3 ...

La fonctionnalité client / serveur dans vim est très pratique. Il n'est pas limité à l'ouverture des fichiers; il peut être utilisé pour envoyer toutes les commandes de vim à l'aide de la ligne de commande. Par exemple, pour fermer un vim instance à distance, vous pouvez utiliser:

$ gvim --servername GVIM --remote-send '<Esc>:wqa<CR>'

21voto

Steve K Points 1480

À partir de l'intérieur de Gvim, tapez :tabe {file_name}. Cela ouvre le fichier nommé dans un nouvel onglet. Si vous n'êtes pas friands de taper les noms de fichiers longs, essayez ceci:

:tabnew
:e .

Cela va ouvrir une nouvelle page de l'onglet et ouvrir un navigateur de fichier. Vous pouvez en un clic votre façon de contourner ou d'utiliser le clavier. Cliquez sur ou appuyez sur la touche entrée sur le fichier que vous voulez ouvrir. Essayez d'utiliser le clavier pour positionner le curseur sur le fichier que vous voulez ouvrir, puis appuyez sur "t". Cela ouvre le fichier sélectionné dans un nouvel onglet, en gardant le navigateur de fichiers ouverts dans le premier onglet. Cela peut être un moyen rapide d'ouvrir un groupe de fichiers.

Il y a tout un tas de choses que vous pouvez faire avec des pages à onglet qui pourrait rendre la vie plus facile. Pour se rendre à la section correspondante dans Vim en ligne manuel d'aide, tapez :h tabpage.

13voto

matt burns Points 6072

Voulez-vous que le menu contextuel de Windows vous permette d'ouvrir des fichiers dans un nouvel onglet de la fenêtre gvim ouverte?

Enregistrez-le sous un fichier nommé temp.reg et double-cliquez dessus pour ajouter les paramètres à votre registre. Assurez-vous de modifier le chemin d'accès à vim si le vôtre est différent.

 Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\Shell\Open with &Vim]
[HKEY_CLASSES_ROOT\*\Shell\Open with &Vim\command]
@="\"C:\\Program Files (x86)\\Vim\\vim73\\gvim.exe\" -p --remote-tab-silent \"%1\" \"%*\""
 

Vous allez maintenant avoir un menu contextuel comme ceci:

menu contextuel vim

6voto

Jan Valiska Points 45

Les utilisateurs de Linux peuvent utiliser ce type de script:

 #!/bin/bash

ANS=`pgrep -fx "gvim --servername GVIM"`

echo $@

if [[ ! $ANS ]]; then
    gvim --servername GVIM
fi

if [[ $1 ]]; then
    gvim --servername GVIM --remote-tab "${@}"
fi
 

Et éditez ensuite le fichier gvim.desktop pour utiliser ce script:

 Exec=/home/user/bin/my_gvim_script.sh %F
 

1voto

user1021852 Points 76

Il y a un moyen:

 n*.cpp|tab ba
 

ou si vous aimez diviser:

 n*.cpp|sba
 

Si vous souhaitez en savoir plus:

 :help ba
 

et je ne sais pas ce qui est n , mais cela ne fonctionnerait pas sans cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X