コード例 #1
0
ファイル: vi.py プロジェクト: anula/python-prompt-toolkit
 def _(event):
     """
     Yank the whole line.
     """
     text = '\n'.join(
         event.current_buffer.document.lines_from_current[:event.arg])
     event.cli.clipboard.set_data(ClipboardData(text, SelectionType.LINES))
コード例 #2
0
ファイル: vi.py プロジェクト: anula/python-prompt-toolkit
    def _(event):
        """
        Delete line. (Or the following 'n' lines.)
        """
        buffer = event.current_buffer

        # Split string in before/deleted/after text.
        lines = buffer.document.lines

        before = '\n'.join(lines[:buffer.document.cursor_position_row])
        deleted = '\n'.join(
            lines[buffer.document.
                  cursor_position_row:buffer.document.cursor_position_row +
                  event.arg])
        after = '\n'.join(lines[buffer.document.cursor_position_row +
                                event.arg:])

        # Set new text.
        if before and after:
            before = before + '\n'

        # Set text and cursor position.
        buffer.document = Document(
            text=before + after,
            # Cursor At the start of the first 'after' line, after the leading whitespace.
            cursor_position=len(before) + len(after) - len(after.lstrip(' ')))

        # Set clipboard data
        event.cli.clipboard.set_data(
            ClipboardData(deleted, SelectionType.LINES))
コード例 #3
0
    def _(event):
        """
        Change selection (cut and go to insert mode).
        """
        buffer = event.current_buffer

        selection_type = buffer.selection_state.type
        deleted = buffer.cut_selection()
        event.cli.clipboard.set_data(ClipboardData(deleted, selection_type))
        vi_state.input_mode = InputMode.INSERT
コード例 #4
0
ファイル: vi.py プロジェクト: wadaries/python-prompt-toolkit
    def _(event):  # TODO: implement 'arg'
        """
        Change current line
        """
        buffer = event.current_buffer

        # We copy the whole line.
        data = ClipboardData(buffer.document.current_line, SelectionType.LINES)
        event.cli.clipboard.set_data(data)

        # But we delete after the whitespace
        buffer.cursor_position += buffer.document.get_start_of_line_position(after_whitespace=True)
        buffer.delete(count=buffer.document.get_end_of_line_position())
        vi_state.input_mode = InputMode.INSERT