1 回答

TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊
您可以創(chuàng)建自定義鍵綁定以在用戶按 Enter 時執(zhí)行完成。例如:
from prompt_toolkit import prompt
from prompt_toolkit.completion import FuzzyWordCompleter
from prompt_toolkit.key_binding import KeyBindings
from prompt_toolkit.filters import (
has_completions,
completion_is_selected,
)
# Override enter key to automatically perform first completion.
key_bindings = KeyBindings()
filter = has_completions & ~completion_is_selected
@key_bindings.add("enter", filter=filter)
def _(event):
event.current_buffer.go_to_completion(0)
event.current_buffer.validate_and_handle()
completer = FuzzyWordCompleter([
"Using", "Testing", "Building", "Designing", "Documenting"
])
result = prompt("$ ",
completer=completer,
complete_while_typing=True,
key_bindings=key_bindings,
)
if result:
print(result)
將被覆蓋的鍵綁定當(dāng)前位于shortcuts/prompt.py
和中key_binding/bindings/basic.py
。
如果您的提示應(yīng)用程序更復(fù)雜(例如多行輸入或多個緩沖區(qū)),那么您可能需要額外的邏輯來處理這些情況。 prompt_toolkit.filters.is_multiline可能有用。
添加回答
舉報