Je peux ouvrir un shell en utilisant la commande: shell dans Vim, mais je ne peux pas éditer un fichier et en même temps utiliser le shell.
Existe-t-il un moyen de diviser Vim dans de nombreuses fenêtres (ou onglets) et d'ouvrir un shell dans l'un d'entre eux?
Réponses:
Neovim et Vim le
8.2
supportent nativement via la:ter[minal]
commande.Voir
terminal-window
dans la documentation pour plus de détails.la source
vsplit term://bash
si vous utilisez Neovim.terminal
commande divise la fenêtre et donne un shell de commande avec une couleur spéciale sur la barre d'état de la fenêtre. Nappe.Eh bien, cela dépend de votre système d'exploitation - en fait, je ne l'ai pas testé sur MS Windows - mais Conque est l'un des meilleurs plugins du marché.
En fait, ça peut être mieux, mais ça marche.
la source
: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, vous pouvez l'essayer:
Ctrl-shift-t.
et passez de l'une à l'autre avecCtrl - pageup
etCtrl - 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
.la source
vim
magie des chemins comme ceci::!./%
Ctrl
-que je suppose que votre réponse suppose gnome-terminal ou un émulateur similaire.Vous pouvez utiliser
tmux
ouscreen
(le second ne peut faire que des fractionnements horizontaux sans patch) pour fractionner votre terminal. Mais je ne sais pas comment avoir une instance de Vim dans les deux volets.la source
Si vous ne l'avez pas encore découvert, vous pouvez utiliser le plugin d'écran incroyable .
Conque est aussi exceptionnel mais je trouve l'écran beaucoup plus pratique (il ne "jettera pas" votre buffer par exemple et vous pouvez juste envoyer les commandes que vous voulez vraiment après les avoir éditées dans votre buffer)
la source
Je suppose que c'est une question assez ancienne, mais maintenant en 2017. Nous avons neovim, qui est un fork de vim qui ajoute le support des terminaux.
Ainsi, l'invocation
:term
ouvrirait une fenêtre de terminal. La beauté de cette solution par opposition à l'utilisation de tmux (un multiplexeur de terminal) est que vous aurez les mêmes liaisons de fenêtre que votrevim
configuration. neovim est compatible avec vim, vous pouvez donc copier et coller votre fichier.vimrc
et cela fonctionnera.Plus d'avantages sont que vous pouvez passer en mode normal sur le terminal ouvert et que vous pouvez effectuer une copie et une édition de base. C'est aussi très utile pour les commits git, je suppose, car tout ce qui se trouve dans votre tampon peut être utilisé en saisie semi-automatique.
Je vais mettre à jour cette réponse car vim prévoit également de publier le support du terminal, probablement dans vim 8.1. Vous pouvez suivre la progression ici: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM
Une fois qu'il est publié, je pense que c'est une configuration plus supérieure que l'utilisation de tmux.
la source
VimShell de Shougo , qui peut compléter automatiquement les noms de fichiers s'il est utilisé avec neocomplcache
la source
Pas absolument ce que vous demandez, mais vous pourriez être intéressé par mon plugin vim-notebook qui permet à l'utilisateur de maintenir un processus d'arrière-plan vivant et de le faire évaluer une partie du document courant (et d'écrire la sortie dans le document). Il est destiné à être utilisé sur des documents de type bloc-notes contenant des morceaux de code à évaluer.
la source
Vous voudrez peut-être ouvrir un programme "écran", un écran partagé, ouvrir le shell sur l'un et vim sur un autre. Travaille pour moi.
la source
J'utilise actuellement tmux.
Installation: sudo apt-get install tmux Exécutez-le: tmux
Ctrl + b suivi de Ctr +%: il divise votre fenêtre de terminal en deux moitiés verticales.
Ctrl + "flèche gauche | flèche droite": se déplace entre les terminaux.
la source