vimterm 0.3.0

A vim-mode terminal where command+output blocks are navigable units
# vt

A vim-modal terminal where command+output blocks are navigable units.

## What

- Shell runs underneath, full state preserved (cd, env, aliases, functions)
- Each command + output is a block you can navigate, collapse, expand
- Vim keybindings throughout
- Status line shows cwd and exit code

## Layout

```
┌─────────────────────────────────────────────────┐
│   drwxr-xr-x  5 user  staff  160 Jan 10 14:32 . │
│ ❯ ls -la                                        │  ← command below output
│   [47 lines, exit 0]                            │  ← collapsed
│ ❯ cargo build                                   │
├─────────────────────────────────────────────────┤
│ ❯ █                                             │  ← input (fixed)
├─────────────────────────────────────────────────┤
│ ~/projects/vt  [0]                              │  ← status (fixed)
└─────────────────────────────────────────────────┘
```

## Modes

**Normal** — navigate blocks  
**Insert** — type commands  
**Scroll** — navigate within a block's output

## Keybindings

### Normal

| Key | Action |
|-----|--------|
| `j/k` | Next/prev block |
| `gg/G` | First/last block |
| `Enter` | Enter Scroll mode |
| `i` | Enter Insert mode |
| `za` | Toggle collapse |
| `q` | Quit |

### Insert

| Key | Action |
|-----|--------|
| `Esc` | Back to Normal |
| `Enter` | Execute |
| `Ctrl-c` | Clear |

### Scroll

| Key | Action |
|-----|--------|
| `j/k` | Line up/down |
| `Ctrl-d/u` | Half page |
| `gg/G` | Top/bottom |
| `Esc` | Back to Normal |

## Install

```
cargo install --path .
```

## Config

`~/.config/vt/config.toml`

```toml
[prompt]
symbol = "❯ "

[blocks]
max_lines = 10000

[history]
layout = "bottom_up"       # bottom_up (default) | top_down
command_position = "below" # below (default) | above
```

| layout | command_position | behavior |
|--------|------------------|----------|
| bottom_up | below | output above command, anchored to bottom |
| bottom_up | above | command above output, anchored to bottom |
| top_down | below | output above command, anchored to top |
| top_down | above | command above output, anchored to top |

## License

Unlicense

---

Built with [Claude Code](https://claude.ai/code) (claude-opus-4-5-20251101)