42 votes

Accès au terminal lorsque vous êtes sur Vim

Y a-t-il un moyen d'accéder au terminal tout en utilisant Vim ?

Je n'aime pas ouvrir un autre terminal ou enregistrer et quitter le terminal actuel.

70voto

noleti Points 3943

Vous pouvez envoyer à vim le signal SIGTSTP. Vous pouvez le faire en appuyant sur ctrl+z. Vim sera suspendu en arrière-plan, et vous pourrez utiliser le terminal. Tapez fg dans le terminal pour reprendre avec vim.

Conseil Bonus: Cela fonctionne sur presque toutes les applications de terminal. Utilisez bg pour permettre à l'application de continuer à s'exécuter en arrière-plan.

35voto

sbell Points 451

Dans vim, il suffit de taper :

:!sh

:! lance un processus externe -- dans ce cas sh, un autre shell. Le contrôle reviendra à vim une fois que vous aurez quitté le shell. Si vous voulez utiliser le shell de manière concurrente avec vim, ajoutez & à la fin de la commande sh :

:!sh&

21voto

evilsoup Points 4265

Vous pouvez utiliser la commande :shell (ou la forme courte :sh). De :help :shell:

Cette commande ouvre un shell. Lorsque le shell se ferme (après la commande "exit") vous revenez à Vim. Le nom de la commande shell vient de l'option 'shell'.

Par défaut, sur Ubuntu, cela vous donnera bash. tapez exit pour retourner à Vim quand vous avez fini.

10voto

Nan Mullaney Points 11

Depuis la récente version de vim, vous pouvez maintenant faire :

:terminal

Cela a été initialement ajouté dans Vim 8.0.693, mais avec beaucoup de bugs. Voir :help terminal:

ATTENTION : CECI EST PARTIELLEMENT IMPLEMENTÉ, TOUT PEUT ENCORE CHANGER

La fonction terminal est optionnelle, utilisez ceci pour vérifier si votre Vim l'a :
        echo has('terminal')
Si le résultat est "1" vous l'avez.

[...]

La fonction terminal nécessite les fonctionnalités +multi_byte, +job et +channel.

==============================================================================
1. Utilisation de base                                            terminal-use

Cette fonctionnalité sert à exécuter un émulateur de terminal dans une fenêtre Vim. Un job peut être démarré connecté à l'émulateur de terminal. Par exemple, pour exécuter un shell :
     :term bash

Ou pour exécuter un débogueur :
     :term gdb vim

Le job s'exécute de manière asynchrone par rapport à Vim, la fenêtre sera mise à jour pour afficher la sortie du job, même en éditant dans une autre fenêtre.

7voto

c0rp Points 9110

En complément de toutes les réponses.

Vous pouvez installer le plugin ConqueTerm

Ce plugin permet d'exécuter des programmes interactifs à l'intérieur des tampons vim.

Après l'installation, vous pouvez ajouter ces 2 lignes à votre fichier .vimrc:

:nnoremap  :q!
:nnoremap  :ConqueTermSplit bash

Et vous pourrez exécuter bash en appuyant sur Shift + T, et fermer l'onglet Conque actuel en appuyant sur Shift + W

C'est parfait si vous avez besoin d'ouvrir/fermer rapidement bash.

Voici un gif montrant à quoi cela ressemble

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X