1. Outil de rappel Python
Je pense que cette bibliothèque est l'armée suisse pour la ligne de commande - il joue des rôles de lecture, des cures et d'autres rôles de la bibliothèque. Commençons par l'installation de cette bibliothèque:
PIP Promption_Toolkit
Nous allons commencer par une copie simple. Une traduction typique peut obtenir l'entrée de l'utilisateur, puis imprimer le résultat après les actions. Nous créons une inscription "ECHO" ici. Quel est l'utilisateur à imprimer?
de l'entrée d'invite invite_toolkit
tandis que 1:
User_Input = Invite ('& GT;' )
Imprimer (user_input)
Une traduction est terminée. Il peut lire l'entrée de l'utilisateur et exporter le contenu de l'utilisateur. La fonction de rappel de ce code provient de la bibliothèque Express_Toolkit; Il est utilisé pour remplacer la bibliothèque de readline.
Troisièmement, l'historique
Pour améliorer nos copies, nous pouvons ajouterHistorique de l'histoire:
de Prompt_Toolkit. Entrez l'historique de la déhistoire
tandis que 1:
user_input = Invite ('& GT;',
Historique = FileHistory ("historique.txt")
,
Imprimer (user_input)
Nous venons d'ajouter une longue histoire à repliquer. Nous pouvons maintenant utiliser des flèches haut / bas pour parcourir l'historique et utiliser Ctrl + R pour trouver l'historique. Ceci est cohérent avec la base Rituel de la ligne de commande.
Lenovo quatrième, automatique
L'une des compétences découvrit que j'ai automatiquement introduit automatiquement dans la première partie de l'ordre de l'historique de Lenovo. (Nous Consultez cette fonctionnalité pour créer cette fonctionnalité dans le poissoncark.) Ajoutons cette fonctionnalité à notre copie:
de Invest_Toolkit Entrez une invite gratuite
User_Input = Invite ('& GT; ',
Historique = fichierHistoire (' historique.txt '),
Auto_sugest = autosugestfromhistory (),
Imprimer (user_input)
Nous devons faire juste pour ajouter un nouveau paramètre dans l'invite d'appel de l'API (). Maintenant, nous avons une forme avec l'histoire de l'histoire de style américain.
Cinq références au milieu.
Comment puis-je voler quelles références? Nous fournissons un dictionnaire d'un article facultatif pour donner un pourboire.
Obtenez le SQL Terminé automatiquement à titre d'exemple pour voir comment le faire dans Rem. Nous pouvons stocker des mots-clés SQL pour compléter automatiquement le dictionnaire. Comme suit:
de Invest_Toolkit Entrer dans l'invite
à partir d'invite_toolkit.history Entrez FileHistory
à partir d'invite_toolkit.auto_sugest Entrez automatiquement une entrée autonomeà partir du rappel_toolkit .contribit .Commandeter Entrez WordCompleter
SQLCOMPLETRE = WordCompterner (["Sélectionnez", "Insérer", "Mettre à jour", "Supprimer", "Drop"],
Ignore_Case = True 1:
User_input = invite ('SQL & GT;',
Historique = FileHistoire ('Historique.txt '),
Auto_sugest = autosugestfromhistory (),
compleder = sqlcommètre,
Imprimer (user_input)
. À l'avance, nous utilisons simplement la boîte à outils de rappel appelée l'addition habituelle de WordCompleter. Il correspondra à l'entrée de l'utilisateur à partir du dictionnaire terminé automatiquement et permettra une liste d'entrée en option.
Maintenant, notre achèvement automatique de l'histoire de l'historique automatique dans le style de poisson et l'historique des entrées de contrôle clé en haut. Le déploiement de toutes ces fonctionnalités n'est que moins de 10 lignes de code.
Cliquez sur une ligne de commande pour créer un ensemble pouvant facilement résoudre les options et les paramètres du programme du programme. Cette section n'introduit pas comment utiliser Cliquez sur Parser de paramètres. Au lieu de cela, je parlerai de certains utilitaires disponibles dans les clics.
Cliquez sur Paramètres très simple:
INSTALLATION PIP Cliquez sur
Seven, Pager
Pager est le téléavertisseur utilitaire UNIX peut être affiché sur une page à la fois. Il peut être ajusté pour montrer moins, plus et la plupart des v.v. La sortie de la commande d'affichage est non seulement conçue pour être amicale, mais également supplémentaire.
Nous allons envisagerons d'ajouter des exemples à l'avant, peut remplacer le travail d'impression par défaut () par click.echo_via_pager (). Il enverra la sortie à Stdout via le pager. Ceci n'est pas lié à la plate-forme, vous pouvez donc travailler à UNIX ou à Windows. Ajouter Click.echo_via_pager () Utilisez également les valeurs par défaut appropriées pour afficher le code de couleur, si nécessaire:
DivalyFrol.history Entrez FileDhistoryfrom. Auto_suggest.auto_suggest Entrez AutosugestFromhistoryFrom Prompt_toolkit. contribuer. ignore_case = tandis 1:
user_input = invite (u'sql & gt; ',
Historique = filehistorory ("historique.txt '),
Auto_sugestefromhistory (),
compleder = sqlcommètre,click.echo_via_pager (user_input)
Huit, éditeur
Mes derniers messages sont lorsque la commande est trop compliquée, vous devez utiliser l'éditeur. Et une API simple peut être utilisée pour démarrer l'éditeur et renvoyer le texte saisi dans l'application à l'application:
Entrer
Message = click.edit () [)
Filzzy FinderFauzzy Finder est un moyen de réduire l'invite de code avec moins de nœuds. Ensuite, il y a une bibliothèque de classe pour effectuer Fuzzy Finder. Laissez-nous l'installer:
PIP FuzzyFinder
Fauzzy Finder API est très simple. Il vous suffit de fournir des chaînes et des listes sélectionnées pouvant se produire, Fuzzy Finder organisera une nouvelle liste qui lui convient via l'algorithme flou basé sur l'ordre de corrélation. Portefeuille d
& GT; & Gt; & Gt; De FuzzyFinder Entrez FuzzyFinder
& GT; & Gt; & Gt; Suggestions = FuzzyFinder ('ABC', ['ABCD', 'DEFABCA', 'AAGBEC', 'XYZ', 'QX']) & GT; & Gt; & Gt; La liste (suggérée) ["ABCD", "DEFABCA", "AAGBECO"]
Maintenant, nous avons FuzzyFinder, nous l'ajoutons à notre SQL Repl. Nous faisons cela est d'identifier une coutume Dispositif fini, pas WordCompterter avec une boîte à outils rapide. Par exemple:
Divest_toolkit.history Entrez FileHistoryfrom rapide_suggest.auto_suggest.auto_suggest.auto_suggestfromett.Auto_suggestfromt, FerCionionImport Clickfrom FuzzyFinder Entrez FuzzyFinder
SQLKEYWORS = ["Sélectionnez", "Word", "Insérer", "Mettre à jour", "Supprimer", "Supprimer", 'Drop'] Classe SQLCompleter (terminée): DEF GET_COMPLETTIONS (Self, Documentation, Accan_Event):
Word_Beforor = Document.get_Word_Word_Words_former_
Joints = FuzzyFinder (Word_Befor_codsor, sqlkeywords)
Pour m dans les matchs: Productivité complète (m, start_posé = -len (Word_Befor_corsor) tandis que 1:
user_input = Invite (U'SQL & GT; ',
Historique = 'History.txt'),
Auto_suggest = AutosuggestFromHistory (),
(),
[ECHO_VIA_PAGER
ajoutez maintenant la syntaxe des personnes utilisées pour mettre en évidence, lorsque nous utilisons SQL Reply, ce sera Très bien. Les pycments sont une surbrillance de la syntaxe, prenant en charge plus de 300 langues en intégration. Après avoir ajouté la syntaxe, vous pouvez créer des programmes plus colorés et peut également aider les utilisateurs à trouver des erreurs avant d'exécuter SQL, telle que Erreurs d'entrée, ne correspondez pas de citations ou de parenthèses Les premiers paramètres pygments: Ajoutez de la couleur à SQL Reth cNos pygments: Divot_toolkit Entrez ComputerFROM Invity_Toolkit.history Entrez FileHistoryFrom Automatic_Toolkit.Auto_SuGest Automatit Entrée automatiqueFromhistoryFrom Entrée complète, FiterionImport Clickfrom FuzzyFinder Entrez FuzzyFinderFom Pygments.SQL Entrez SQLLEKED SQLKEYS [Sélectionnez ',' Insérer ',' Supprimer ',' Supprimer ',' Drop '] SQLCompleter Classe (Terminé): Def Get_Complettions (auto, Documentation, Sous-match): ] Word_beforor = document.get_word_busfor_corsor (Word = true_3] joints = FuzzyFinder (Word_Befor_Coder, SQLKeywords) Pour m dans les matchs: Terminer la productivité (m, Start_Pontion = -len (Word_Befor_cursor)) tandis que 1: user_input = Invite (U'SQL & GT; ', Historique = fichierHistoire ("historique.txt'), Auto_suggest = autosuggestfromhistory (), , [SQLCompter (), click.echo_via_pager (user_input) Pygments 在 Invite 工具 很 很 很 很 pygments 提供 SQLLEXER 传入 API de rappel API. Dix, Conclusion En créant une copie forte, elle comprend Toutes les fonctions de shell universel telles que l'historique, la liaison à clavier, etc. Caractéristiques, telles que l'achèvement automatique, la recherche floue, le support de pager, le support de l'éditeur et la mise en évidence de la syntaxe. Nous n'utilisons pas ces déclarations de Python pour faire tout cela. Facile? Vous devriez également essayer d'écrire une application de ligne de commande stellaire. Ces ressources peuvent aider: Cliquez sur (Toolkit pour créer l'interface de ligne de commande) Conseils Toolkit Tips Veuillez vous reporter à l'invite d'instructions et aux exemples de la boîte à outils dans la bibliothèque Toolkit de rappel