当前位置: 首页>>代码示例>>Python>>正文


Python key_binding.KeyBindings方法代码示例

本文整理汇总了Python中prompt_toolkit.key_binding.KeyBindings方法的典型用法代码示例。如果您正苦于以下问题:Python key_binding.KeyBindings方法的具体用法?Python key_binding.KeyBindings怎么用?Python key_binding.KeyBindings使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在prompt_toolkit.key_binding的用法示例。


在下文中一共展示了key_binding.KeyBindings方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: get_bindings

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def get_bindings(settings):
    bindings = KeyBindings()

    @bindings.add(Keys.F2)
    def _(event):
        settings.set_next_cluster()

    @bindings.add(Keys.F3)
    def _(event):
        settings.set_enable_fuzzy_search(not settings.enable_fuzzy_search)

    @bindings.add(Keys.F9)
    def _(event):
        settings.set_enable_help(not settings.enable_help)

    @bindings.add(Keys.F10)
    def _(event):
        current.get_app().exit(exception=EOFError)

    return bindings 
开发者ID:devshawn,项目名称:kafka-shell,代码行数:22,代码来源:bindings.py

示例2: __init__

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def __init__(self, pymux):
        self.pymux = pymux

        def get_search_state():
            " Return the currently active SearchState. (The one for the focused pane.) "
            return pymux.arrangement.get_active_pane().search_state

        self.custom_key_bindings = KeyBindings()

        self.key_bindings = merge_key_bindings([
            self._load_builtins(),
            self.custom_key_bindings,
        ])

        self._prefix = ('c-b', )
        self._prefix_binding = None

        # Load initial bindings.
        self._load_prefix_binding()

        # Custom user configured key bindings.
        # { (needs_prefix, key) -> (command, handler) }
        self.custom_bindings = {} 
开发者ID:prompt-toolkit,项目名称:pymux,代码行数:25,代码来源:key_bindings.py

示例3: run

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def run():
    # Create a `KeyBindings` that contains the default key bindings.
    bindings = KeyBindings()

    # Add an additional key binding for toggling this flag.
    @bindings.add("f4")
    def _(event):
        " Toggle between Emacs and Vi mode. "
        if event.app.editing_mode == EditingMode.VI:
            event.app.editing_mode = EditingMode.EMACS
        else:
            event.app.editing_mode = EditingMode.VI

    def bottom_toolbar():
        " Display the current input mode. "
        if get_app().editing_mode == EditingMode.VI:
            return " [F4] Vi "
        else:
            return " [F4] Emacs "

    prompt("> ", key_bindings=bindings, bottom_toolbar=bottom_toolbar) 
开发者ID:prompt-toolkit,项目名称:python-prompt-toolkit,代码行数:23,代码来源:switch-between-vi-emacs.py

示例4: main

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def main():
    # We start with a `KeyBindings` for our extra key bindings.
    bindings = KeyBindings()

    # We add a custom key binding to space.
    @bindings.add(" ")
    def _(event):
        """
        When space is pressed, we check the word before the cursor, and
        autocorrect that.
        """
        b = event.app.current_buffer
        w = b.document.get_word_before_cursor()

        if w is not None:
            if w in corrections:
                b.delete_before_cursor(count=len(w))
                b.insert_text(corrections[w])

        b.insert_text(" ")

    # Read input.
    text = prompt("Say something: ", key_bindings=bindings)
    print("You said: %s" % text) 
开发者ID:prompt-toolkit,项目名称:python-prompt-toolkit,代码行数:26,代码来源:autocorrection.py

示例5: create_key_bindings

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def create_key_bindings() -> KeyBindings:
    """
    Key bindings handled by the progress bar.
    (The main thread is not supposed to handle any key bindings.)
    """
    kb = KeyBindings()

    @kb.add("c-l")
    def _clear(event: E) -> None:
        event.app.renderer.clear()

    @kb.add("c-c")
    def _interrupt(event: E) -> None:
        # Send KeyboardInterrupt to the main thread.
        os.kill(os.getpid(), signal.SIGINT)

    return kb 
开发者ID:prompt-toolkit,项目名称:python-prompt-toolkit,代码行数:19,代码来源:base.py

示例6: create_dummy_layout

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def create_dummy_layout() -> Layout:
    """
    Create a dummy layout for use in an 'Application' that doesn't have a
    layout specified. When ENTER is pressed, the application quits.
    """
    kb = KeyBindings()

    @kb.add("enter")
    def enter(event: E) -> None:
        event.app.exit()

    control = FormattedTextControl(
        HTML("No layout specified. Press <reverse>ENTER</reverse> to quit."),
        key_bindings=kb,
    )
    window = Window(content=control, height=D(min=1))
    return Layout(container=window, focused_element=window) 
开发者ID:prompt-toolkit,项目名称:python-prompt-toolkit,代码行数:19,代码来源:dummy.py

示例7: __init__

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def __init__(self,
                 input_handler: Callable,
                 bindings: KeyBindings,
                 completer: Completer):
        self.search_field = create_search_field()
        self.input_field = create_input_field(completer=completer)
        self.output_field = create_output_field()
        self.log_field = create_log_field(self.search_field)
        self.layout = generate_layout(self.input_field, self.output_field, self.log_field, self.search_field)
        # add self.to_stop_config to know if cancel is triggered
        self.to_stop_config: bool = False

        self.bindings = bindings
        self.input_handler = input_handler
        self.input_field.accept_handler = self.accept
        self.app = Application(layout=self.layout, full_screen=True, key_bindings=self.bindings, style=load_style(),
                               mouse_support=True, clipboard=PyperclipClipboard())

        # settings
        self.prompt_text = ">>> "
        self.pending_input = None
        self.input_event = None
        self.hide_input = False 
开发者ID:CoinAlpha,项目名称:hummingbot,代码行数:25,代码来源:hummingbot_cli.py

示例8: load_confirm_exit_bindings

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def load_confirm_exit_bindings(python_input):
    """
    Handle yes/no key presses when the exit confirmation is shown.
    """
    bindings = KeyBindings()

    handle = bindings.add
    confirmation_visible = Condition(lambda: python_input.show_exit_confirmation)

    @handle("y", filter=confirmation_visible)
    @handle("Y", filter=confirmation_visible)
    @handle("enter", filter=confirmation_visible)
    @handle("c-d", filter=confirmation_visible)
    def _(event):
        """
        Really quit.
        """
        event.app.exit(exception=EOFError, style="class:exiting")

    @handle(Keys.Any, filter=confirmation_visible)
    def _(event):
        """
        Cancel exit.
        """
        python_input.show_exit_confirmation = False

    return bindings 
开发者ID:prompt-toolkit,项目名称:ptpython,代码行数:29,代码来源:key_bindings.py

示例9: _get_bindings

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def _get_bindings(self):
        bindings = KeyBindings()
        bindings.add("c-c")(lambda event: self._interrupt_handler(event))
        return bindings 
开发者ID:skelsec,项目名称:msldap,代码行数:6,代码来源:aiocmd.py

示例10: test_bindings

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def test_bindings(self):
        kb = KeyBindings()
        bind_keys(Buffer(), kb)

        self.assertTrue('on_backspace' in handlers_for_key(kb, Keys.Backspace))
        self.assertTrue('on_tab' in handlers_for_key(kb, Keys.Tab)) 
开发者ID:crate,项目名称:crash,代码行数:8,代码来源:test_keybinding.py

示例11: main

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def main():
    bottom_toolbar = HTML(
        ' <b>[f]</b> Print "f" <b>[q]</b> Abort  <b>[x]</b> Send Control-C.'
    )

    # Create custom key bindings first.
    kb = KeyBindings()
    cancel = [False]

    @kb.add("f")
    def _(event):
        print("You pressed `f`.")

    @kb.add("q")
    def _(event):
        " Quit by setting cancel flag. "
        cancel[0] = True

    @kb.add("x")
    def _(event):
        " Quit by sending SIGINT to the main thread. "
        os.kill(os.getpid(), signal.SIGINT)

    # Use `patch_stdout`, to make sure that prints go above the
    # application.
    with patch_stdout():
        with ProgressBar(key_bindings=kb, bottom_toolbar=bottom_toolbar) as pb:
            for i in pb(range(800)):
                time.sleep(0.01)

                if cancel[0]:
                    break 
开发者ID:prompt-toolkit,项目名称:python-prompt-toolkit,代码行数:34,代码来源:custom-key-bindings.py

示例12: main

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def main():
    hidden = [True]  # Nonlocal
    bindings = KeyBindings()

    @bindings.add("c-t")
    def _(event):
        " When ControlT has been pressed, toggle visibility. "
        hidden[0] = not hidden[0]

    print("Type Control-T to toggle password visible.")
    password = prompt(
        "Password: ", is_password=Condition(lambda: hidden[0]), key_bindings=bindings
    )
    print("You said: %s" % password) 
开发者ID:prompt-toolkit,项目名称:python-prompt-toolkit,代码行数:16,代码来源:get-password-with-toggle-display-shortcut.py

示例13: __init__

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def __init__(
        self,
        title: AnyFormattedText = None,
        formatters: Optional[Sequence[Formatter]] = None,
        bottom_toolbar: AnyFormattedText = None,
        style: Optional[BaseStyle] = None,
        key_bindings: Optional[KeyBindings] = None,
        file: Optional[TextIO] = None,
        color_depth: Optional[ColorDepth] = None,
        output: Optional[Output] = None,
        input: Optional[Input] = None,
    ) -> None:

        self.title = title
        self.formatters = formatters or create_default_formatters()
        self.bottom_toolbar = bottom_toolbar
        self.counters: List[ProgressBarCounter[object]] = []
        self.style = style
        self.key_bindings = key_bindings

        # Note that we use __stderr__ as default error output, because that
        # works best with `patch_stdout`.
        self.color_depth = color_depth
        self.output = output or get_app_session().output
        self.input = input or get_app_session().input

        self._thread: Optional[threading.Thread] = None

        self._loop = get_event_loop()
        self._app_loop = new_event_loop()

        self._previous_winch_handler = None
        self._has_sigwinch = False

        if TYPE_CHECKING:
            # Infer type from getsignal result, as defined in typeshed. Too
            # complex to repeat here.
            self._previous_winch_handler = signal.getsignal(_SIGWINCH) 
开发者ID:prompt-toolkit,项目名称:python-prompt-toolkit,代码行数:40,代码来源:base.py

示例14: get_key_bindings

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def get_key_bindings(self) -> KeyBindings:
        return self._key_bindings 
开发者ID:prompt-toolkit,项目名称:python-prompt-toolkit,代码行数:4,代码来源:base.py

示例15: build_propmpt

# 需要导入模块: from prompt_toolkit import key_binding [as 别名]
# 或者: from prompt_toolkit.key_binding import KeyBindings [as 别名]
def build_propmpt(self) -> pt_shortcuts.PromptSession:
        history = pt_history.FileHistory(
            os.path.expanduser('~/.edgedbhistory'))

        bindings = pt_key_binding.KeyBindings()
        handle = bindings.add

        @handle('f3')  # type: ignore
        def _mode_toggle(event: Any) -> None:
            self.context.toggle_query_mode()

        @handle('f4')  # type: ignore
        def _implicit_toggle(event: Any) -> None:
            self.context.toggle_implicit()

        @handle('f5')  # type: ignore
        def _introspect_toggle(event: Any) -> None:
            self.context.toggle_introspect_types()

            if self.context.introspect_types:
                self.ensure_connection()
                self.introspect_db(self.connection)
            else:
                self.context.typenames = None

        @handle('tab')  # type: ignore
        def _tab(event: Any) -> None:
            b = prompt.app.current_buffer
            before_cursor = b.document.current_line_before_cursor
            if b.text and (not before_cursor or before_cursor.isspace()):
                b.insert_text('    ')

        prompt = pt_shortcuts.PromptSession(
            lexer=pt_lexers.PygmentsLexer(eql_pygments.EdgeQLLexer),
            include_default_pygments_style=False,

            completer=pt_complete.DummyCompleter(),
            reserve_space_for_menu=6,

            message=self.get_prompt_tokens,
            prompt_continuation=self.get_continuation_tokens,
            bottom_toolbar=self.get_toolbar_tokens,
            multiline=is_multiline,
            history=history,
            complete_while_typing=pt_filters.Always(),
            key_bindings=bindings,
            style=self.style,
            editing_mode=pt_enums.EditingMode.VI,
            search_ignore_case=True,
        )

        return prompt 
开发者ID:edgedb,项目名称:edgedb,代码行数:54,代码来源:__init__.py


注:本文中的prompt_toolkit.key_binding.KeyBindings方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。