VimSheet

Getting Started

  • 1. Installation
    • 1.1. Stable Release
    • 1.2. Development Version
    • 1.3. Verify Installation
    • 1.4. Dependencies
  • 2. Quickstart
    • 2.1. Your First Spreadsheet
    • 2.2. Basic Navigation
    • 2.3. Saving and Loading
    • 2.4. Next Steps

User Guide

  • User Guide
  • Modes
    • Normal Mode
    • Insert Mode
    • Edit Mode
    • Visual Modes
    • Command Mode
  • Navigation
    • Cell Movement
    • Scrolling
    • Named Markers
    • Goto Address
  • Editing
    • Entering Data
    • Multi-line Cell Content
    • Editing Existing Cells
    • Copy, Cut, and Paste
    • Registers
    • Increment and Decrement
    • Valueize
    • Locking Cells
    • Cell Comments
    • Data Validation
    • Cell History
    • Fill Operations
    • Message History
  • Formulas
    • Entering Formulas
    • Cell References
    • Paste Behavior
    • Operators
    • Dependency Tracking
    • HTTP Data Fetching
  • Formatting
    • Cell Format Properties
    • Cell Format Commands
    • Number Formatting
    • Conditional Formatting
  • Sheets
    • Sheet Management
    • Tab Navigation
    • Cross-Sheet References
    • Moving and Copying Sheets
  • Search and Replace
    • Searching
    • Search Options
    • Replace
    • Column and Row Substitution
    • Search Modes
  • Sort and Filter
    • Sorting
    • Filtering
    • Filter Rules
  • Themes & Color Schemes
    • Available Themes
    • How It Works
    • The :colorscheme Command
      • List all current colours
      • Set a single field
      • Reset to theme defaults
      • Save overrides
    • Per-Theme Configuration
    • Palette Fields Reference
      • Grid — Headers
      • Grid — Cursor
      • Grid — Visual Selection
      • Grid — Lines & Alternating Rows
      • Grid — Frozen Panes
      • Grid — Error
      • Sheet Tabs
      • Formula Bar
      • Mode Indicator Colours
  • Undo and Redo
    • Undo Operations
    • Undo Branches

File Formats

  • File Formats
  • CSV and TSV
    • Opening
    • Saving
    • Options
  • Excel Files
    • XLSX (Excel 2007+)
    • XLS (Excel 97–2003)
    • Limitations
  • JSON
    • Loading JSON
    • Saving JSON
  • Export Formats
    • HTML
    • Markdown
    • LaTeX

Plotting

  • Plotting
  • Chart Types
    • Creating Charts
    • Chart Types
    • Options

Scripting

  • Scripting
  • Scripting Protocol
    • Communication
    • Communication
    • Available Methods
    • Using External Scripts
    • Example
  • User-Defined Functions
    • Defining a Function
    • Loading Functions

Reference

  • Reference
  • API Reference
    • vimsheet.app
      • VimSheetApp
        • VimSheetApp.CSS
        • VimSheetApp.__init__()
        • VimSheetApp.compose()
        • VimSheetApp.on_mount()
        • VimSheetApp.on_unmount()
        • VimSheetApp.grid
        • VimSheetApp.formula_bar
        • VimSheetApp.status_bar
        • VimSheetApp.sheet_tabs
        • VimSheetApp.mode
        • VimSheetApp.cursor_row
        • VimSheetApp.cursor_col
        • VimSheetApp.cursor
        • VimSheetApp.on_key()
        • VimSheetApp.open_in_external_editor()
        • VimSheetApp.on_grid_widget_cursor_moved()
        • VimSheetApp.on_sheet_tabs_sheet_selected()
        • VimSheetApp.on_sheet_tabs_add_sheet()
    • vimsheet.command_completer
      • Completion contexts
      • CommandCompleter
        • CommandCompleter.__init__()
        • CommandCompleter.reset()
        • CommandCompleter.tab()
    • vimsheet.help_entries
    • vimsheet.help_registry
      • register_section()
      • register_help()
      • get_tabs()
      • get_entries()
      • get_func_categories()
      • build_section()
      • section_lines()
      • build_func_category()
      • build_search_index()
      • search_matches()
    • vimsheet.controller
    • vimsheet.controller.edit_handler
      • EditHandler
        • EditHandler.__init__()
        • EditHandler.enter()
        • EditHandler.handle()
    • vimsheet.controller.insert_handler
      • InsertHandler
        • InsertHandler.__init__()
        • InsertHandler.handle()
    • vimsheet.controller.macro
      • MacroRecorder
        • MacroRecorder.__init__()
        • MacroRecorder.start_recording()
        • MacroRecorder.stop_recording()
        • MacroRecorder.record_key()
        • MacroRecorder.get_macro()
        • MacroRecorder.replay_last()
        • MacroRecorder.is_recording
        • MacroRecorder.recording_register
        • MacroRecorder.has_macro()
    • vimsheet.controller.mode
      • Mode
        • Mode.NORMAL
        • Mode.INSERT
        • Mode.EDIT
        • Mode.COMMAND
        • Mode.SEARCH
        • Mode.VISUAL
        • Mode.VISUAL_LINE
        • Mode.VISUAL_BLOCK
        • Mode.label()
        • Mode.css_class()
        • Mode.is_visual()
      • can_transition()
    • vimsheet.controller.normal_handler
      • NormalHandler
        • NormalHandler.__init__()
        • NormalHandler.handle()
    • vimsheet.controller.search
      • SearchState
        • SearchState.pattern
        • SearchState.replace
        • SearchState.case_sensitive
        • SearchState.use_regex
        • SearchState.whole_cell
        • SearchState.current_match
        • SearchState.matches
        • SearchState.__init__()
      • Searcher
        • Searcher.__init__()
        • Searcher.find_all()
        • Searcher.find_next()
        • Searcher.find_prev()
        • Searcher.replace_one()
        • Searcher.collect_replacements()
        • Searcher.replace_all()
        • Searcher.replace_in_cols()
        • Searcher.replace_in_range()
        • Searcher.replace_in_rows()
    • vimsheet.controller.visual_handler
      • VisualHandler
        • VisualHandler.__init__()
        • VisualHandler.handle()
    • vimsheet.fetch
    • vimsheet.fetch.fetch_manager
      • FetchEntry
        • FetchEntry.url
        • FetchEntry.interval
        • FetchEntry.json_path
        • FetchEntry.headers
        • FetchEntry.method
        • FetchEntry.last_value
        • FetchEntry.status
        • FetchEntry.timer
        • FetchEntry.spill_cells
        • FetchEntry.__init__()
      • FetchManager
        • FetchManager.__init__()
        • FetchManager.get_cached()
        • FetchManager.schedule()
        • FetchManager.fetch_now()
        • FetchManager.cancel()
        • FetchManager.cancel_all()
        • FetchManager.all_entries()
    • vimsheet.fetch.fetch_worker
      • FetchResult
        • FetchResult.raw
        • FetchResult.status_code
        • FetchResult.error
        • FetchResult.ok
        • FetchResult.__init__()
      • parse_curl_command()
      • do_fetch()
      • parse_response()
      • extract_json_path()
    • vimsheet.formula
    • vimsheet.formula.ast_nodes
      • NumberNode
        • NumberNode.value
        • NumberNode.__init__()
      • StringNode
        • StringNode.value
        • StringNode.__init__()
      • BoolNode
        • BoolNode.value
        • BoolNode.__init__()
      • CellRefNode
        • CellRefNode.ref
        • CellRefNode.__init__()
      • RangeRefNode
        • RangeRefNode.ref
        • RangeRefNode.__init__()
      • SheetCellRefNode
        • SheetCellRefNode.sheet
        • SheetCellRefNode.ref
        • SheetCellRefNode.__init__()
      • SheetRangeRefNode
        • SheetRangeRefNode.sheet
        • SheetRangeRefNode.ref
        • SheetRangeRefNode.__init__()
      • ColRangeRefNode
        • ColRangeRefNode.ref
        • ColRangeRefNode.__init__()
      • NameNode
        • NameNode.name
        • NameNode.__init__()
      • UnaryNode
        • UnaryNode.op
        • UnaryNode.operand
        • UnaryNode.__init__()
      • BinaryNode
        • BinaryNode.op
        • BinaryNode.left
        • BinaryNode.right
        • BinaryNode.__init__()
      • PercentNode
        • PercentNode.operand
        • PercentNode.__init__()
      • FuncCallNode
        • FuncCallNode.name
        • FuncCallNode.args
        • FuncCallNode.__init__()
    • vimsheet.formula.dependency
      • CycleError
      • DependencyGraph
        • DependencyGraph.__init__()
        • DependencyGraph.set_dependencies()
        • DependencyGraph.remove_cell()
        • DependencyGraph.dependents_of()
        • DependencyGraph.dependencies_of()
        • DependencyGraph.evaluation_order()
        • DependencyGraph.iter_edges()
    • vimsheet.formula.evaluator
      • EvalError
        • EvalError.__init__()
      • Evaluator
        • Evaluator.__init__()
        • Evaluator.eval_formula()
        • Evaluator.collect_deps()
      • recalculate()
    • vimsheet.formula.parser
      • ParseError
      • Parser
        • Parser.__init__()
        • Parser.parse()
      • parse_formula()
    • vimsheet.formula.tokenizer
      • TokenizeError
      • tokenize()
    • vimsheet.formula.tokens
      • TT
        • TT.NUMBER
        • TT.STRING
        • TT.BOOL
        • TT.CELL_REF
        • TT.RANGE_REF
        • TT.SHEET_CELL_REF
        • TT.SHEET_RANGE_REF
        • TT.COL_RANGE_REF
        • TT.NAME
        • TT.OP
        • TT.LPAREN
        • TT.RPAREN
        • TT.COMMA
        • TT.AT
        • TT.COLON
        • TT.PERCENT
        • TT.EOF
      • Token
        • Token.type
        • Token.value
        • Token.pos
        • Token.__init__()
    • vimsheet.formula.functions
    • vimsheet.formula.functions.date_funcs
      • fn_today()
      • fn_now()
      • fn_date()
      • fn_time()
      • fn_year()
      • fn_month()
      • fn_day()
      • fn_hour()
      • fn_minute()
      • fn_second()
      • fn_datedif()
      • fn_edate()
      • fn_eomonth()
      • fn_weekday()
      • fn_weeknum()
      • fn_networkdays()
    • vimsheet.formula.functions.logic_funcs
      • fn_if()
      • fn_ifs()
      • fn_and()
      • fn_or()
      • fn_not()
      • fn_xor()
      • fn_iferror()
      • fn_ifna()
      • fn_switch()
      • fn_true()
      • fn_false()
      • fn_isblank()
      • fn_isnumber()
      • fn_istext()
      • fn_iserror()
    • vimsheet.formula.functions.lookup_funcs
      • fn_vlookup()
      • fn_hlookup()
      • fn_index()
      • fn_match()
      • fn_xlookup()
      • fn_choose()
      • fn_row()
      • fn_col()
      • fn_rows()
      • fn_cols()
      • fn_offset()
      • fn_indirect()
    • vimsheet.formula.functions.math_funcs
      • fn_sum()
      • fn_avg()
      • fn_count()
      • fn_counta()
      • fn_min()
      • fn_max()
      • fn_prod()
      • fn_stddev()
      • fn_stdevs()
      • fn_var()
      • fn_vars()
      • fn_median()
      • fn_mode()
      • fn_percentile()
      • fn_sumif()
      • fn_countif()
      • fn_averageif()
      • fn_subtotal()
      • fn_abs()
      • fn_ceil()
      • fn_floor()
      • fn_round()
      • fn_roundup()
      • fn_rounddown()
      • fn_sqrt()
      • fn_pow()
      • fn_exp()
      • fn_log()
      • fn_log10()
      • fn_ln()
      • fn_sin()
      • fn_cos()
      • fn_tan()
      • fn_asin()
      • fn_acos()
      • fn_atan()
      • fn_atan2()
      • fn_hypot()
      • fn_mod()
      • fn_rand()
      • fn_randbetween()
      • fn_sign()
      • fn_int()
      • fn_trunc()
      • fn_fact()
      • fn_gcd()
      • fn_lcm()
      • fn_pi()
      • fn_e()
      • fn_dtr()
      • fn_rtd()
    • vimsheet.formula.functions.net_funcs
      • fn_fetch()
    • vimsheet.formula.functions.registry
      • FunctionMeta
        • FunctionMeta.__init__()
        • FunctionMeta.fn
        • FunctionMeta.names
        • FunctionMeta.category
        • FunctionMeta.desc
        • FunctionMeta.__getattr__()
      • register()
      • get()
      • all_names()
      • all_functions()
      • register_script_function()
    • vimsheet.formula.functions.text_funcs
      • fn_concat()
      • fn_len()
      • fn_upper()
      • fn_lower()
      • fn_proper()
      • fn_trim()
      • fn_left()
      • fn_right()
      • fn_mid()
      • fn_find()
      • fn_replace()
      • fn_substitute()
      • fn_text()
      • fn_value()
      • fn_rept()
      • fn_exact()
      • fn_char()
      • fn_code()
    • vimsheet.io
    • vimsheet.io.base
      • FormatAdapter
        • FormatAdapter.supported_extensions
        • FormatAdapter.can_read_formulas
        • FormatAdapter.can_write_formulas
        • FormatAdapter.multi_sheet
        • FormatAdapter.read()
        • FormatAdapter.write()
    • vimsheet.io.csv_adapter
      • CSVAdapter
        • CSVAdapter.supported_extensions
        • CSVAdapter.read()
        • CSVAdapter.write()
    • vimsheet.io.html_adapter
      • HTMLAdapter
        • HTMLAdapter.supported_extensions
        • HTMLAdapter.read()
        • HTMLAdapter.write()
    • vimsheet.io.json_adapter
      • JSONAdapter
        • JSONAdapter.supported_extensions
        • JSONAdapter.can_read_formulas
        • JSONAdapter.can_write_formulas
        • JSONAdapter.multi_sheet
        • JSONAdapter.read()
        • JSONAdapter.write()
    • vimsheet.io.latex_adapter
      • LaTeXAdapter
        • LaTeXAdapter.supported_extensions
        • LaTeXAdapter.read()
        • LaTeXAdapter.write()
    • vimsheet.io.markdown_adapter
      • MarkdownAdapter
        • MarkdownAdapter.supported_extensions
        • MarkdownAdapter.read()
        • MarkdownAdapter.write()
    • vimsheet.io.registry
      • get_adapter()
      • get_adapter_by_name()
    • vimsheet.io.xls_adapter
      • XLSAdapter
        • XLSAdapter.supported_extensions
        • XLSAdapter.multi_sheet
        • XLSAdapter.read()
        • XLSAdapter.write()
    • vimsheet.io.xlsx_adapter
      • XLSXAdapter
        • XLSXAdapter.supported_extensions
        • XLSXAdapter.can_read_formulas
        • XLSXAdapter.can_write_formulas
        • XLSXAdapter.multi_sheet
        • XLSXAdapter.read()
        • XLSXAdapter.write()
    • vimsheet.model
    • vimsheet.model.cell
      • CellFormat
        • CellFormat.bold
        • CellFormat.italic
        • CellFormat.underline
        • CellFormat.align
        • CellFormat.fg_color
        • CellFormat.bg_color
        • CellFormat.num_decimals
        • CellFormat.num_format
        • CellFormat.thousands_sep
        • CellFormat.copy()
        • CellFormat.__init__()
      • Cell
        • Cell.row
        • Cell.col
        • Cell.formula
        • Cell.value
        • Cell.display
        • Cell.fmt
        • Cell.locked
        • Cell.comment
        • Cell.history
        • Cell.is_empty()
        • Cell.record_history()
        • Cell.format_value()
        • Cell.copy()
        • Cell.__init__()
    • vimsheet.model.config
      • Config
        • Config.autosave
        • Config.autosave_interval
        • Config.default_col_width
        • Config.theme
        • Config.show_grid_lines
        • Config.show_row_headers
        • Config.show_col_headers
        • Config.formula_bar_visible
        • Config.status_bar_visible
        • Config.max_undo
        • Config.history_size
        • Config.message_history_size
        • Config.autocalc
        • Config.scroll_speed
        • Config.tab_size
        • Config.enter_moves
        • Config.decimal_separator
        • Config.thousands_separator
        • Config.scripts_dir
        • Config.functions_file
        • Config.save_cursor
        • Config.theme_overrides
        • Config.get_scripts_dir()
        • Config.get_functions_file()
        • Config.load()
        • Config.save()
        • Config.default_path()
        • Config.__init__()
    • vimsheet.model.range
      • col_letters_to_index()
      • col_index_to_letters()
      • a1_to_rowcol()
      • rowcol_to_a1()
      • CellRange
        • CellRange.start_row
        • CellRange.start_col
        • CellRange.end_row
        • CellRange.end_col
        • CellRange.from_a1()
        • CellRange.to_a1()
        • CellRange.num_rows
        • CellRange.num_cols
        • CellRange.iter_cells()
        • CellRange.contains()
        • CellRange.__init__()
      • NamedRangeRegistry
        • NamedRangeRegistry.define()
        • NamedRangeRegistry.delete()
        • NamedRangeRegistry.resolve()
        • NamedRangeRegistry.all_names()
        • NamedRangeRegistry.__init__()
    • vimsheet.model.sheet
      • CondFormatRule
        • CondFormatRule.range_str
        • CondFormatRule.operator
        • CondFormatRule.value
        • CondFormatRule.value2
        • CondFormatRule.fmt
        • CondFormatRule.matches()
        • CondFormatRule.__init__()
      • FilterRule
        • FilterRule.operator
        • FilterRule.value
        • FilterRule.matches()
        • FilterRule.__init__()
      • SortState
        • SortState.sort_keys
        • SortState.__init__()
      • Sheet
        • Sheet.name
        • Sheet.cells
        • Sheet.col_widths
        • Sheet.row_heights
        • Sheet.hidden_rows
        • Sheet.hidden_cols
        • Sheet.row_groups
        • Sheet.col_groups
        • Sheet.freeze_rows
        • Sheet.freeze_cols
        • Sheet.named_ranges
        • Sheet.cond_formats
        • Sheet.filters
        • Sheet.sort_state
        • Sheet.max_row
        • Sheet.max_col
        • Sheet.validation
        • Sheet.cursor_row
        • Sheet.cursor_col
        • Sheet.autocalc
        • Sheet.get_cell()
        • Sheet.cell()
        • Sheet.set_cell_value()
        • Sheet.clear_cell()
        • Sheet.set_cells_batch()
        • Sheet.clear_cells_batch()
        • Sheet.get_range_values()
        • Sheet.insert_row()
        • Sheet.delete_row()
        • Sheet.insert_col()
        • Sheet.delete_col()
        • Sheet.DEFAULT_COL_WIDTH
        • Sheet.get_col_width()
        • Sheet.set_col_width()
        • Sheet.auto_fit_col()
        • Sheet.used_range()
        • Sheet.sort_by_col()
        • Sheet.sort_by_cols()
        • Sheet.sort_range_columns()
        • Sheet.apply_filters()
        • Sheet.__init__()
    • vimsheet.model.undo
      • YankedCell
        • YankedCell.value
        • YankedCell.formula
        • YankedCell.fmt
        • YankedCell.locked
        • YankedCell.comment
        • YankedCell.__init__()
      • Command
        • Command.description
        • Command.execute()
        • Command.undo()
      • SetCellCommand
        • SetCellCommand.description
        • SetCellCommand.__init__()
        • SetCellCommand.execute()
        • SetCellCommand.undo()
      • ClearCellCommand
        • ClearCellCommand.description
        • ClearCellCommand.__init__()
        • ClearCellCommand.execute()
        • ClearCellCommand.undo()
      • DeleteRangeCommand
        • DeleteRangeCommand.description
        • DeleteRangeCommand.__init__()
        • DeleteRangeCommand.execute()
        • DeleteRangeCommand.undo()
      • ValidationCommand
        • ValidationCommand.description
        • ValidationCommand.__init__()
        • ValidationCommand.execute()
        • ValidationCommand.undo()
      • SortRangeCommand
        • SortRangeCommand.description
        • SortRangeCommand.__init__()
        • SortRangeCommand.execute()
        • SortRangeCommand.undo()
      • FillRangeCommand
        • FillRangeCommand.description
        • FillRangeCommand.__init__()
        • FillRangeCommand.execute()
        • FillRangeCommand.undo()
      • InsertRowCommand
        • InsertRowCommand.description
        • InsertRowCommand.__init__()
        • InsertRowCommand.execute()
        • InsertRowCommand.undo()
      • DeleteRowCommand
        • DeleteRowCommand.description
        • DeleteRowCommand.__init__()
        • DeleteRowCommand.execute()
        • DeleteRowCommand.undo()
      • InsertColCommand
        • InsertColCommand.description
        • InsertColCommand.__init__()
        • InsertColCommand.execute()
        • InsertColCommand.undo()
      • DeleteColCommand
        • DeleteColCommand.description
        • DeleteColCommand.__init__()
        • DeleteColCommand.execute()
        • DeleteColCommand.undo()
      • PasteCommand
        • PasteCommand.description
        • PasteCommand.__init__()
        • PasteCommand.execute()
        • PasteCommand.undo()
      • LockCommand
        • LockCommand.description
        • LockCommand.__init__()
        • LockCommand.execute()
        • LockCommand.undo()
      • FormatCommand
        • FormatCommand.description
        • FormatCommand.__init__()
        • FormatCommand.execute()
        • FormatCommand.undo()
      • SortCommand
        • SortCommand.description
        • SortCommand.__init__()
        • SortCommand.execute()
        • SortCommand.undo()
      • ShiftCellsCommand
        • ShiftCellsCommand.description
        • ShiftCellsCommand.__init__()
        • ShiftCellsCommand.execute()
        • ShiftCellsCommand.undo()
      • CompositeCommand
        • CompositeCommand.description
        • CompositeCommand.__init__()
        • CompositeCommand.execute()
        • CompositeCommand.undo()
      • UndoStack
        • UndoStack.__init__()
        • UndoStack.can_undo
        • UndoStack.can_redo
        • UndoStack.push()
        • UndoStack.undo()
        • UndoStack.redo()
        • UndoStack.clear()
    • vimsheet.model.validation
      • ValidationRule
        • ValidationRule.rule_type
        • ValidationRule.operator
        • ValidationRule.choices
        • ValidationRule.formula
        • ValidationRule.error_message
        • ValidationRule.allow_blank
        • ValidationRule.rule_type
        • ValidationRule.operator
        • ValidationRule.value1
        • ValidationRule.value2
        • ValidationRule.choices
        • ValidationRule.formula
        • ValidationRule.error_message
        • ValidationRule.allow_blank
        • ValidationRule.validate()
        • ValidationRule.__init__()
      • SheetValidation
        • SheetValidation.rules
        • SheetValidation.add()
        • SheetValidation.remove()
        • SheetValidation.get()
        • SheetValidation.validate()
        • SheetValidation.__init__()
    • vimsheet.model.workbook
      • Workbook
        • Workbook.sheets
        • Workbook.active_sheet_idx
        • Workbook.filepath
        • Workbook.modified
        • Workbook.global_named_ranges
        • Workbook.active_sheet
        • Workbook.get_sheet()
        • Workbook.get_sheet_index()
        • Workbook.add_sheet()
        • Workbook.delete_sheet()
        • Workbook.rename_sheet()
        • Workbook.duplicate_sheet()
        • Workbook.set_autocalc()
        • Workbook.go_to_next_sheet()
        • Workbook.go_to_prev_sheet()
        • Workbook.go_to_sheet()
        • Workbook.blank()
        • Workbook.__init__()
    • vimsheet.plotting
    • vimsheet.plotting.chart
      • ChartSpec
        • ChartSpec.chart_type
        • ChartSpec.data_range
        • ChartSpec.title
        • ChartSpec.x_label
        • ChartSpec.y_label
        • ChartSpec.width
        • ChartSpec.height
        • ChartSpec.series_names
        • ChartSpec.__init__()
      • render_chart()
    • vimsheet.scripting
    • vimsheet.scripting.engine
      • ScriptResult
        • ScriptResult.commands_run
        • ScriptResult.errors
        • ScriptResult.ok
        • ScriptResult.__init__()
      • ScriptError
      • ScriptEngine
        • ScriptEngine.__init__()
        • ScriptEngine.workbook
        • ScriptEngine.run_file()
        • ScriptEngine.run_string()
        • ScriptEngine.run_lines()
    • vimsheet.ui
    • vimsheet.ui.buffers_screen
      • BuffersScreen
        • BuffersScreen.DEFAULT_CSS
        • BuffersScreen.__init__()
        • BuffersScreen.compose()
        • BuffersScreen.can_focus
        • BuffersScreen.can_focus_children
    • vimsheet.ui.chart_screen
      • ChartScreen
        • ChartScreen.DEFAULT_CSS
        • ChartScreen.__init__()
        • ChartScreen.compose()
        • ChartScreen.can_focus
        • ChartScreen.can_focus_children
    • vimsheet.ui.fetch_list_screen
      • FetchListScreen
        • FetchListScreen.DEFAULT_CSS
        • FetchListScreen.__init__()
        • FetchListScreen.compose()
        • FetchListScreen.can_focus
        • FetchListScreen.can_focus_children
    • vimsheet.ui.formula_bar
      • FormulaBar
        • FormulaBar.DEFAULT_CSS
        • FormulaBar.cell_address
        • FormulaBar.formula_text
        • FormulaBar.cursor_pos
        • FormulaBar.mode
        • FormulaBar.is_modified
        • FormulaBar.is_locked
        • FormulaBar.__init__()
        • FormulaBar.set_palette()
        • FormulaBar.compose()
        • FormulaBar.watch_cell_address()
        • FormulaBar.watch_formula_text()
        • FormulaBar.watch_cursor_pos()
        • FormulaBar.watch_mode()
        • FormulaBar.watch_is_modified()
        • FormulaBar.watch_is_locked()
        • FormulaBar.update_cell()
        • FormulaBar.can_focus
        • FormulaBar.can_focus_children
    • vimsheet.ui.funcs_screen
      • FuncsScreen
        • FuncsScreen.DEFAULT_CSS
        • FuncsScreen.__init__()
        • FuncsScreen.compose()
        • FuncsScreen.can_focus
        • FuncsScreen.can_focus_children
    • vimsheet.ui.grid
      • GridWidget
        • GridWidget.BINDINGS
        • GridWidget.DEFAULT_CSS
        • GridWidget.CursorMoved
        • GridWidget.cursor_row
        • GridWidget.cursor_col
        • GridWidget.mode
        • GridWidget.visual_anchor_row
        • GridWidget.visual_anchor_col
        • GridWidget.show_visual
        • GridWidget.__init__()
        • GridWidget.set_search_state()
        • GridWidget.on_mount()
        • GridWidget.sheet
        • GridWidget.get_col_width()
        • GridWidget.update_config()
        • GridWidget.set_palette()
        • GridWidget.set_preview()
        • GridWidget.collapse_row()
        • GridWidget.expand_row()
        • GridWidget.get_content_width()
        • GridWidget.get_content_height()
        • GridWidget.render_line()
        • GridWidget.move_cursor()
        • GridWidget.move_by()
        • GridWidget.move_to_row_start()
        • GridWidget.move_to_first_nonempty_in_row()
        • GridWidget.move_to_row_end()
        • GridWidget.move_to_first_row()
        • GridWidget.move_to_last_row()
        • GridWidget.move_to_first_cell()
        • GridWidget.move_to_last_cell()
        • GridWidget.jump_next_nonempty_right()
        • GridWidget.jump_next_nonempty_left()
        • GridWidget.jump_next_nonempty_down()
        • GridWidget.jump_next_nonempty_up()
        • GridWidget.page_down()
        • GridWidget.page_up()
        • GridWidget.half_page_down()
        • GridWidget.half_page_up()
        • GridWidget.go_to_visible_top()
        • GridWidget.go_to_visible_middle()
        • GridWidget.go_to_visible_bottom()
        • GridWidget.start_visual()
        • GridWidget.visual_selection()
        • GridWidget.scroll_cell_to_top()
        • GridWidget.scroll_cell_to_center()
        • GridWidget.scroll_cell_to_bottom()
        • GridWidget.watch_cursor_row()
        • GridWidget.watch_cursor_col()
        • GridWidget.watch_mode()
        • GridWidget.refresh_grid()
        • GridWidget.can_focus
        • GridWidget.can_focus_children
    • vimsheet.ui.help_screen
      • HelpScreen
        • HelpScreen.DEFAULT_CSS
        • HelpScreen.__init__()
        • HelpScreen.compose()
        • HelpScreen.on_mount()
        • HelpScreen.on_key()
        • HelpScreen.action_next_tab()
        • HelpScreen.action_prev_tab()
        • HelpScreen.on_tabs_tab_activated()
        • HelpScreen.action_next_match()
        • HelpScreen.action_prev_match()
        • HelpScreen.can_focus
        • HelpScreen.can_focus_children
    • vimsheet.ui.sheet_tabs
      • SheetTabs
        • SheetTabs.DEFAULT_CSS
        • SheetTabs.SheetSelected
        • SheetTabs.AddSheet
        • SheetTabs.__init__()
        • SheetTabs.set_palette()
        • SheetTabs.set_sheets()
        • SheetTabs.render()
        • SheetTabs.on_click()
        • SheetTabs.on_mouse_scroll_down()
        • SheetTabs.on_mouse_scroll_up()
        • SheetTabs.can_focus
        • SheetTabs.can_focus_children
    • vimsheet.ui.status_bar
      • MessageEntry
        • MessageEntry.text
        • MessageEntry.timestamp
        • MessageEntry.level
        • MessageEntry.__init__()
      • StatusBar
        • StatusBar.DEFAULT_CSS
        • StatusBar.mode
        • StatusBar.sheet_name
        • StatusBar.cell_address
        • StatusBar.row
        • StatusBar.col
        • StatusBar.used_rows
        • StatusBar.filename
        • StatusBar.file_modified
        • StatusBar.message
        • StatusBar.__init__()
        • StatusBar.message_history
        • StatusBar.set_history_size()
        • StatusBar.compose()
        • StatusBar.on_mount()
        • StatusBar.watch_mode()
        • StatusBar.watch_sheet_name()
        • StatusBar.watch_cell_address()
        • StatusBar.watch_row()
        • StatusBar.watch_col()
        • StatusBar.watch_used_rows()
        • StatusBar.watch_filename()
        • StatusBar.watch_file_modified()
        • StatusBar.watch_message()
        • StatusBar.show_message()
        • StatusBar.set_persistent_message()
        • StatusBar.update_cursor()
        • StatusBar.can_focus
        • StatusBar.can_focus_children
    • vimsheet.ui.vim_modal
      • VimModalScreen
        • VimModalScreen.BINDINGS
        • VimModalScreen.action_scroll_down_line()
        • VimModalScreen.action_scroll_up_line()
        • VimModalScreen.action_scroll_down_half()
        • VimModalScreen.action_scroll_up_half()
        • VimModalScreen.action_scroll_down_page()
        • VimModalScreen.action_scroll_up_page()
        • VimModalScreen.action_scroll_top()
        • VimModalScreen.action_scroll_bottom()
        • VimModalScreen.can_focus
        • VimModalScreen.can_focus_children
  • Keybindings
    • Normal Mode
    • Insert Mode
    • Edit Mode
    • Visual Modes
  • Commands
    • File Operations
    • Buffer Management
    • Cell Operations
    • Search and Replace
    • Sheet Operations
    • Sort and Filter
    • Column and Row Management
    • Conditional Formatting
    • Plotting
    • HTTP Fetching
    • Configuration
    • Scripting
    • Miscellaneous
  • Formula Functions
    • Mathematical Functions
    • Logical Functions
    • Text Functions
    • Lookup and Reference
    • Date Functions
    • Data Fetching
  • Error Reference
    • Cell Errors
    • Application Errors
  • Command-Line Interface
    • Options
    • Pipeline Mode
    • Diff Mode
    • Environment Variables
    • Configuration
    • Exit Codes

Advanced Topics

  • Advanced Topics
  • Pipeline Mode
    • Basic Usage
    • Pipeline Commands
    • Script File Format (.vsheet)
    • Examples
  • Macros
    • Recording
    • Playback
    • Workflow Example
  • Named Ranges
    • Defining Named Ranges
    • Using Named Ranges
    • Managing Named Ranges
    • Scope
  • Conditional Formatting
    • Operators
    • Defining Rules
    • Managing Rules
  • Performance
    • Large Datasets
    • Configuration
    • Cache Settings
    • Memory Usage

Development

  • Development
  • Architecture
    • Component Overview
    • Key Design Decisions
    • Data Flow
  • Contributing
    • Development Setup
    • Code Style
    • Running Tests
    • Pull Request Process
    • Building Documentation
    • Pre-commit Hooks
  • Testing
    • Test Structure
    • Running Tests
    • Writing Tests
    • Doctests
    • Coverage
  • Extending VimSheet
    • Adding File Format Support
    • Custom Formula Functions
    • External Scripting

Examples

  • Examples
    • Expense Tracker
    • Grade Calculator
    • Sales Data Analysis with VLOOKUP
    • Budget vs Actual Dashboard
    • Data Cleaning with Text Functions
    • External Scripting with Python
    • Fetch Live API Data
    • Recording and Playing Macros
    • Pipeline Batch Conversion
    • Diff Two Spreadsheets

Project Info

  • Changelog
    • 0.2.0 — 2026-05-14
      • Features
    • 0.1.0 — 2026-01-15
      • Features
  • Glossary
VimSheet
  • Search


© Copyright 2026, VimSheet Contributors. Last updated on 2026-05-22 09:39:21.

Built with Sphinx using a theme provided by Read the Docs.