簡體   English   中英

readline()選項卡自動以大寫完成並替換到位?

[英]readline() tab completion automatically in uppercase and replace in place?

使用庫readline我設法在使用input()時提供選項卡完成。 到目前為止,我的代碼如下所示:

import readline

class TabComplete:
    def __init__(self, wordList):
        self.wordList = wordList
    
    def complete(self,text,state):
        results =  [x for x in self.wordList if x.startswith(text)] + [None]
        return results[state]

readline.parse_and_bind("tab: complete")

tabComplete = ["IF", "IF_ELSE", "FOR", "WHILE"]

completer = TabComplete(tabComplete)
readline.set_completer(completer.complete)

userTyped = input("prompt > ")

如果我開始輸入I然后在tab上點擊兩次,它將按預期建議我IFIF_ELSE
我現在搜索的是:

  1. 如果我開始輸入i然后點擊兩次tab ,有沒有辦法讓它提出IFIF_ELSE
  2. 如果我輸入IF EL ,我可以實時告訴他用_替換空格,以便完成工作嗎?

您始終可以將文本轉換為大寫並用“_”替換空格

    def complete(self,text,state):
        text = tex.upper().replace(" ","_")
        results =  [x for x in self.wordList if x.startswith(text)] + [None]
        return results[state]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM