Editor Tools¶
The editor tools (hanzo-tools-editor) provide integration with external code editors, currently focused on Neovim.
Overview¶
These tools enable opening files in your preferred editor with precise cursor positioning, split modes, and session management.
Neovim Integration¶
neovim_edit - Open Files¶
Open files in Neovim with advanced options:
# Basic file open
neovim_edit(file_path="main.py")
# Open at specific line
neovim_edit(file_path="main.py", line_number=42)
# Open at specific line and column
neovim_edit(file_path="main.py", line_number=42, column_number=10)
# Open in read-only mode
neovim_edit(file_path="config.json", read_only=True)
# Open in vertical split
neovim_edit(file_path="test.py", split="vsplit")
# Open in new tab
neovim_edit(file_path="README.md", split="tab")
Parameters¶
| Parameter | Type | Default | Description |
|---|---|---|---|
file_path |
str | required | Path to the file |
line_number |
int | - | Line to jump to |
column_number |
int | - | Column to jump to |
read_only |
bool | False |
Open in view mode |
split |
str | - | vsplit, split, or tab |
wait |
bool | True |
Wait for editor to close |
in_terminal |
bool | True |
Open in terminal window |
Split Modes¶
| Mode | Description |
|---|---|
vsplit |
Vertical split (side by side) |
split |
Horizontal split (top/bottom) |
tab |
New tab |
neovim_command - Execute Commands¶
Execute Neovim Ex commands:
# Run command in current buffer
neovim_command(command=":w")
# Search and replace
neovim_command(command=":%s/old/new/g")
# Run Lua code
neovim_command(command=":lua print('Hello')")
# Source configuration
neovim_command(command=":source ~/.config/nvim/init.lua")
Parameters¶
| Parameter | Type | Default | Description |
|---|---|---|---|
command |
str | required | Ex command to execute |
file_path |
str | - | File to run command on |
neovim_session - Manage Sessions¶
Manage Neovim sessions for persistent workspaces:
# Save current session
neovim_session(action="save", name="project-alpha")
# Load session
neovim_session(action="load", name="project-alpha")
# List sessions
neovim_session(action="list")
# Delete session
neovim_session(action="delete", name="old-session")
Parameters¶
| Parameter | Type | Default | Description |
|---|---|---|---|
action |
str | required | save, load, list, delete |
name |
str | - | Session name |
Installation¶
# Basic install
pip install hanzo-tools-editor
# With Neovim support
pip install hanzo-tools-editor[neovim]
Requirements¶
- Neovim must be installed and available in PATH
- Installation varies by platform:
# macOS
brew install neovim
# Ubuntu/Debian
sudo apt install neovim
# Arch Linux
sudo pacman -S neovim
# Windows (Chocolatey)
choco install neovim
Terminal Integration¶
On macOS, the tool integrates with: - iTerm2 (preferred if installed) - Terminal.app (fallback)
On Linux: - gnome-terminal - xterm (fallback)
Best Practices¶
1. Use Line/Column for Error Navigation¶
# Jump directly to error location
neovim_edit(file_path="src/main.py", line_number=42, column_number=15)
2. Use Splits for Comparison¶
# Open original and new file side by side
neovim_edit(file_path="original.py")
neovim_edit(file_path="modified.py", split="vsplit")
3. Use Sessions for Projects¶
# Save state when switching projects
neovim_session(action="save", name="current-work")
# Restore when returning
neovim_session(action="load", name="current-work")