Une console Windows est un terminal ANSI (excentrique), lié derrière l'API de la console Windows. En supposant qu'un enregistreur puisse être créé, le format de fichier asciicast existant devrait être capable de représenter presque tout ce qu'une application de console Windows peut faire. L'enregistrement résultant doit être aussi jouable que n'importe quel autre.
L'astuce, c'est l'enregistrement. Quelqu'un a-t-il réfléchi ou fait des efforts pour créer un tel enregistreur pour une console Windows ?
Un port d'asciinema vers Windows serait-il possible ?
asciinema enregistre la sortie stdout brute d'un processus enfant (shell par défaut). Il ne "capture" en aucune façon le contenu de l'écran. Il capture ce qui est imprimé (y compris toutes les séquences d'échappement/contrôle) et il le fait en utilisant un pseudo-terminal (pty).
Jusqu'à présent, je n'ai trouvé aucun terminal Windows prenant en charge pty, mais récemment, je suis tombé sur http://babun.github.io . La page dit : Mintty is the console used in babun.
La page Mintty (https://mintty.github.io) dit : Similarly to other Cygwin/MSYS terminals based on pseudo terminal ("pty") devices (...)
, mais il y a un long fil de discussion sur le problème connexe : https://github.com/mintty/mintty/issues/56
Si quelqu'un trouve un moyen d'utiliser pty sous Windows (ou quelque chose qui simule pty mais nous donne un flux stdout brut), nous pourrions alors approcher asciinema-on-windows.
Êtes-vous intéressé par le support cmd natif ?
https://asciinema.org/a/0nsiofsbhypumh6vy5jx6wuog
Mais actuellement expérimental.
@mattn whoa ! Bien sûr, je suis curieux de savoir comment cela a été réalisé.
Pour toute personne intéressée par l'enregistrement sur Windows, @mattn a une branche expérimentale ici : https://github.com/mattn/asciinema/tree/windows
Salut! Peut-être que ce projet est utile ? https://github.com/adoxa/ansicon
Les gars, puis-je utiliser cet outil dans git bash pour Windows ?
C'est-à-dire dans MinGW . Ou à Babun...
Je viens d'installer fork à partir de https://github.com/mattn/asciinema/tree/windows mais il s'exécute cmd.exe
.
@andkirby J'ai entendu dire que cela fonctionnait dans bash sous Windows mais je n'ai pas essayé moi-même.
Rumeurs... :) Merci.)
@sickill Cela a-t-il été fermé parce qu'il a fusionné ou parce que vous ne prévoyez pas de le prendre en charge ?
@masaeedu Merci pour votre intérêt.
Je ne prévois pas de prendre en charge Windows car :
Pour le moment je pense que ça ne vaut pas le coup.
asciinema s'installe et fonctionne parfaitement sous Win10 (WSL) : https://asciinema.org/a/123255
L'enregistrement des terminaux Windows a vraiment besoin de hacks, autant que je sache, ils prennent toujours en charge l'écriture dans le tampon de la console directement avec les instructions MOV. @miniksa
Pour le moment je pense que ça ne vaut pas le coup.
Je suppose que ça vaut le coup. J'aimerais vraiment l'avoir dans la poche pour faire de la vidéo dans Git Bash pour Windows.
J'ai juste beaucoup de choses à montrer. :)
@andkirby https://github.com/asciinema/asciinema/issues/150#issuecomment -305995768
Je suis avec intérêt le fil de discussion sur ce problème. J'espère qu'à l'avenir, une solution pourra être trouvée pour prendre en charge l'utilisation d'Asciinema sur Windows CMD, PowerShell et Git Bash (sans WSL).
En attendant, je laisse tomber quelques liens vers des ressources que j'ai trouvées qui pourraient aider dans cette direction :
winpty est un progiciel Windows fournissant une interface similaire à un pty-master Unix pour communiquer avec les programmes de la console Windows. Le package se compose d'une bibliothèque (libwinpty) et d'un outil pour Cygwin et MSYS pour exécuter des programmes de console Windows dans un pty Cygwin/MSYS.
NOTE : winpty est utilisé par la bibliothèque node-pty ci-dessous.
Liaisons forkpty(3)
pour node.js. Cela vous permet de forker des processus avec des descripteurs de fichiers pseudo-terminaux. Il renvoie un objet terminal qui autorise les lectures et les écritures.
Ceci est utile pour :
node-pty prend en charge Linux, macOS et Windows. La prise en charge de Windows est possible en utilisant la bibliothèque winpty .
@tajmone merci pour le résumé des options possibles. Je ne pense pas que nous pourrons utiliser node-pty, car asciinema est écrit en Python.
Je ne connais pas très bien WSL - fait-il partie de Win10 ou doit-il être installé séparément?
Je ne connais pas très bien WSL - fait-il partie de Win10 ou doit-il être installé séparément?
Moi non plus ... mais d'après ce que j'ai lu, WSL peut être installé en option dans Win 10, et il installera ensuite des pièces à partir d'une distribution Ubuntu réelle. Comme j'ai déjà Git Bash pour Windows, qui m'offre tout ce dont j'ai besoin en ce moment, je préfère ne pas l'installer avant d'en savoir un peu plus à son sujet — WSL offre sûrement plus d'outils que Git Bash, et a une portée plus large ; mais je suppose que cela prend aussi plus de place.
@tajmone @andkirby Un peu tard, mais vous pouvez définir différents shells avec la fourche de Matt en utilisant COMSPEC=cmd
, COMSPEC=bash
ou COMSPEC=powershell
. À mon humble avis, COMSPEC serait la bonne variable Windows à définir pour ce type de fonction. Exemples de sorties ci-dessous :
Commande :
https://asciinema.org/a/r0UNULw8K5r0HV35kTLOatAbX
WSL Bash (lancé depuis un terminal standard) :
https://asciinema.org/a/XtLu8rh65uFekim1VbWamNcmh
Powershell :
https://asciinema.org/a/HttJNKCwM9Tb1NlVP5PFy6Ftx
Personnellement, je trouve que ça marche très bien...
Merci beaucoup @fquinner ! J'ai lu ici et là sur la fourche de Matt, mais je ne savais pas qu'elle avait atteint un statut aussi opérationnel. Les liens que vous avez fournis ont clarifié la situation.
Je vais certainement me renseigner !
Donc asciinema, n'a pas fonctionné sur Windows cmd, n'est-ce pas?
Une autre option consiste à ouvrir un problème dans https://github.com/Microsoft/console pour ajouter une API compatible pty à cmd. L'équipe d'ingénieurs Microsoft Windows Console telle que @bitcrazed est sur Github pour vous écouter.
Ce que @joelhandwell a dit :) Merci d'avoir suggéré ce Joe, et j'ai hâte d'avoir de vos nouvelles sur le dépôt ci-dessus ;)
@bitcrazed Je suis allé de l'avant et j'ai essayé de créer un problème mais déjà @be5invis a soumis https://github.com/Microsoft/console/issues/57 ! Les gens dans ce numéro, espérons-le, donneront beaucoup de 👍 au problème et attireront davantage l'attention de Microsoft.
Si vous ne voulez pas de solution de contournement ou de piratage, go-winpty peut être utilisé pour cela.
@fquinner , je suis désolé, pourriez-vous écrire en détail, comment vous enregistrez ces vidéos ?
J'essaie d'installer et d'exécuter @mattn fork sous Windows, mais je ne comprends pas comment je peux corriger l' erreur No module named 'termios'
.
Merci.
Essayez de construire comme ci-dessous :
mkdir \path\to\your\gopath\src\github.com\mattn
cd \path\to\your\gopath\src\github.com\mattn
git clone https://github.com/mattn/asciinema
cd asciinema
git checkout windows
go build
@matt ,
D:\>go version
go version go1.10 windows/amd64
D:\>go get -d github.com/mattn/asciinema
package github.com/asciinema/asciinema/Godeps/_workspace/src/github.com/docopt/docopt-go: cannot find package "github.com/asciinema/asciinema/Godeps/_workspace/src/github.com/docopt/docopt-go" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOROOT)
C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOPATH)
package github.com/asciinema/asciinema/api: cannot find package "github.com/asciinema/asciinema/api" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\api (from $GOROOT)
C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\api (from $GOPATH)
package github.com/asciinema/asciinema/commands: cannot find package "github.com/asciinema/asciinema/commands" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\commands (from $GOROOT)
C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\commands (from $GOPATH)
package github.com/asciinema/asciinema/util: cannot find package "github.com/asciinema/asciinema/util" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\util (from $GOROOT)
C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\util (from $GOPATH)
Merci.
Désolé, c'était mon erreur. Veuillez réessayer comme ci-dessus.
@matt ,
pip install asciinemawindows
.D:\go\src\github.com\mattn\asciinema>go build
main.go:11:2: cannot find package "github.com/asciinema/asciinema/Godeps/_workspace/src/github.com/docopt/docopt-go" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOROOT)
D:\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOPATH)
main.go:12:2: cannot find package "github.com/asciinema/asciinema/api" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\api (from $GOROOT)
D:\go\src\github.com\asciinema\asciinema\api (from $GOPATH)
main.go:13:2: cannot find package "github.com/asciinema/asciinema/commands" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\commands (from $GOROOT)
D:\go\src\github.com\asciinema\asciinema\commands (from $GOPATH)
main.go:14:2: cannot find package "github.com/asciinema/asciinema/util" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\util (from $GOROOT)
D:\go\src\github.com\asciinema\asciinema\util (from $GOPATH)
main.go:15:2: cannot find package "github.com/mattn/go-colorable" in any of:
C:\tools\go\src\github.com\mattn\go-colorable (from $GOROOT)
D:\go\src\github.com\mattn\go-colorable (from $GOPATH)
Merci.
Veuillez déplacer la discussion sur les problèmes d'installation de la fourche de mattn vers le dépôt de mattn. Merci! ;)
Si vous souhaitez discuter de la prise en charge de Windows en général, veuillez utiliser le forum de discussion d'asciinema : https://discourse.asciinema.org/
Commentaire le plus utile
Pour toute personne intéressée par l'enregistrement sur Windows, @mattn a une branche expérimentale ici : https://github.com/mattn/asciinema/tree/windows