Cibler des émulateurs de terminal spécifiques
L'exécution automatique d'une commande lors de la création d'un nouvel onglet de terminal est une fonctionnalité du terminal spécifique que vous utilisez, et n'est pas liée à l'utilisation de la fonction python
o virtualenv
.
Pour obtenir un éventail plus large de réponses, il faudrait probablement poser la question suivante Comment lancer automatiquement une commande Shell pour l'émulateur de terminal xyz . Par exemple, pour gnome-terminal
vous pouvez utiliser des profils personnalisés comme décrit dans https://unix.stackexchange.com/a/3856/15312 mais cette solution n'est pas transférable si vous décidez de passer à un autre terminal ou à une autre plate-forme.
D'un autre côté, personne ne veut être enfermé dans une application de terminal spécifique. L'option suivante serait donc une approche plus portable.
Ciblage de Shell init Shell
Si vous contrôlez le Shell qui est exécuté dans l'onglet, alors vous pouvez le faire dans votre Shell init Shell.
Par exemple, pour bash
vous pouvez ajouter les lignes suivantes dans votre ~/.bashrc
script :
if [[ -f .venv/bin/activate ]] ; then
source .venv/bin/activate
fi
Pour zsh
ajouter l'extrait à ~/.zshrc
.
Chaque fois que vous créez un nouveau Shell ou que vous ouvrez un nouvel onglet, ce snippet vérifiera si vous avez un .venv
dans le chemin actuel et activer cette venv automatiquement. Si vous créez vos virtualenvs dans un dossier qui n'est pas nommé .venv
puis ajuster le script en conséquence.
Vous pourriez également vouloir remplacer cd
de sorte que chaque fois que vous cd
dans un venv, il sera automatiquement activé :
Vous trouverez ci-dessous un exemple pour zsh
:
function cd() {
builtin cd $1
if [[ -f .venv/bin/activate ]] ; then
source .venv/bin/activate
fi
}
Réduire la saisie avec virtualenvwrapper
En ce qui concerne plus particulièrement virtualenv
: vous pouvez essayer virtualenvwrapper qui peut aider à réduire le nombre de frappes et à faciliter la gestion des environnements en fournissant une autocomplétion pour les dossiers virtualenv.
Processus d'antécédents
Enfin, comme solution de contournement rapide, au lieu de créer de nouveaux onglets avec le même env, vous pouvez suspendre un processus en cours d'exécution (tel que manage.py runserver
) avec Ctr + z et, éventuellement, exécuter bg
pour le reprendre en arrière-plan si vous souhaitez qu'il continue à fonctionner, puis modifiez et enregistrez un fichier, et ramenez le processus original au premier plan avec fg
. Ver este pour plus de détails.