web-dev-qa-db-fra.com

Comment puis-je ouvrir un shell dans une fenêtre Vim?

Je peux ouvrir un shell à l'aide de la commande: Shell dans Vim, mais je ne peux pas éditer un fichier et utiliser simultanément le shell.

Existe-t-il un moyen de fractionner Vim dans de nombreux Windows (ou onglets) et d’avoir un shell ouvert dans l’un d’eux?

92
Martín Fixman

Cela dépend de votre système d’exploitation - en fait, je ne l’ai pas testé sous MS Windows - mais Conque est l’un des meilleurs plugins du marché.

En fait, ça peut être mieux, mais ça marche. 

45
Zsolt Botykai

En retard, mais comme un indice utile pour les personnes qui arrivent ici via Google.

Neovim et Vim 8 supportent maintenant cela nativement via la commande terminal.

29
prater

:vsp ou :sp - divise vim en deux instances mais vous ne pouvez pas utiliser: Shell dans une seule d'entre elles.

Pourquoi ne pas afficher un autre onglet du terminal, pas un autre onglet de vim. Si vous aimez l'idée, essayez-la: Ctrl-shift-t. et déplacez-vous entre elles avec Ctrl - pageup et Ctrl - pagedown

Si vous voulez juste quelques commandes Shell, vous pouvez créer n'importe quelle commande Shell dans vim en utilisant !

Par exemple :!./a.out.

19
vladv

Si vous ne l'avez pas encore découvert, vous pouvez utiliser l'incroyable plug-in screen .

Conque est également exceptionnel mais je trouve l'écran beaucoup plus pratique (il ne "jettera" pas votre tampon par exemple et vous pourrez simplement envoyer les commandes que vous voulez vraiment après les avoir modifiées dans votre tampon)

8
Eelvex

Vous pouvez utiliser tmux ou screen (second ne peut effectuer que des scissions horizontales sans patch) pour scinder votre terminal. Mais je ne connais pas le moyen d’avoir une instance de Vim dans les deux volets.

7
ZyX

Je suppose que c'est une question assez ancienne, mais qui remonte maintenant à 2017. Nous avons neovim, qui est une fourchette de vim qui ajoute un support terminal.

Donc, invoquer :term ouvrirait une fenêtre de terminal. La beauté de cette solution, contrairement à l'utilisation de tmux (multiplexeur de terminal), est que vous aurez les mêmes liaisons de fenêtre que votre configuration vim. neovim est compatible avec vim, vous pouvez donc copier et coller votre .vimrc pour que cela fonctionne.

Plus d'avantages sont que vous pouvez passer en mode normal sur le terminal ouvert et vous pouvez faire la copie de base et l'édition. C'est aussi très utile pour les commits git, je suppose, puisque tout ce que vous pouvez utiliser dans votre tampon peut être utilisé en auto-complétion.

Je mettrai à jour cette réponse car vim prévoit également de libérer le support de terminal, probablement dans vim 8.1. Vous pouvez suivre les progrès ici: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM

Une fois publié, je pense que cette configuration est supérieure à celle de tmux.

5
chriz

Shougo VimShell , qui peut compléter automatiquement les noms de fichiers s'il est utilisé avec neocomplcache

3
kuroz

Ce n'est pas absolument ce que vous demandez, mais vous pouvez être intéressé par mon plugin vim-notebook qui permet à l'utilisateur de garder en vie un processus d'arrière-plan et de le faire évaluer une partie du document actuel (et d'écrire le résultat le document). Il est destiné à être utilisé sur des documents de type cahier contenant des éléments de code à évaluer.

1
Thomas Baruchel

J'utilise actuellement tmux.

Installation: Sudo apt-get install tmuxLancez-le: tmux

Ctrl + b suivi de Ctr +%: il divise la fenêtre de votre terminal en deux moitiés verticales.

Ctrl + "flèche gauche | flèche droite": permet de naviguer entre les terminaux.

0

Vous voudrez peut-être ouvrir un programme "écran", Écran partagé, ouvrir Shell sur un et vim sur un autre .. Fonctionne pour moi.

0
mrcybul