4 votes

Comment exécuter une commande Shell dans Vim, et avoir le résultat imprimé ci-dessous ?

J'aimerais éditer des commandes Shell depuis vim, et les exécuter depuis vim. Actuellement, j'utilise !!sh (envoie la ligne courante à la commande sh), mais cela supprime la ligne elle-même.

Est-il possible d'exécuter la commande dans un Shell, et de coller le résultat sous cette ligne ?

7voto

MJB Points 1594

Comme Clausi a souligné , yyp!!sh copie la ligne courante dans le registre, colle cette ligne sous la ligne originale, et remplace la ligne du bas par la sortie de la commande.

Pour économiser des frappes, vous pouvez mapper cette action en ajoutant la ligne suivante dans le fichier ~/.vimrc fichier :

carte <F5> yyp!sh<CR><Esc>

Comme ça, à chaque fois F5 est pressé en mode commande, la ligne sera exécutée et le résultat sera affiché sous la ligne.

2voto

Clausi Points 4797

Que diriez-vous de copier/coller la ligne avant l'exécution (quelque chose comme yyp!!sh ) ?

0voto

mcw0933 Points 865

Tapez la commande Shell dans la mémoire tampon, par exemple last | head ,
et en mode ligne de commande :read !^R.
Bien sûr, au lieu de taper littéralement ^R touchez CTRL-R combinaison de touches.
Cherchez dans :help c_ctrl-r . . signifie "le dernier texte inséré".
Si la commande est un mot, par exemple vnstat ,
placez le curseur sur ce mot, et tapez :read !<cword> .

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