[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-11136":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":37,"discoverSource":38},11136,"tmux-jump","j4hangir\u002Ftmux-jump","j4hangir","Incremental-narrowing jump for tmux — type what you see, land on it. Like flash.nvim \u002F leap.nvim, for your tmux pane.","https:\u002F\u002Fgit.j4hangir.com\u002Ftmux\u002Ftmux-jump\u002F",null,"Go",48,1,44,2,0,4,0.9,"MIT License",false,"master",true,[24,25,26,27,28,29,30,31,32,33],"copy-mode","flash","go","jump","leap","motion","navigation","tmux","tmux-plugin","tpm","2026-06-12 02:02:29","# 🐇 tmux-jump\n\n> Incremental-narrowing jump for tmux — type what you see, land on it.\n\n[![pipeline](https:\u002F\u002Fgit.j4hangir.com\u002Ftmux\u002Ftmux-jump\u002Fbadges\u002Fmaster\u002Fpipeline.svg)](https:\u002F\u002Fgit.j4hangir.com\u002Ftmux\u002Ftmux-jump\u002F-\u002Fpipelines)\n[![release](https:\u002F\u002Fgit.j4hangir.com\u002Ftmux\u002Ftmux-jump\u002F-\u002Fbadges\u002Frelease.svg)](https:\u002F\u002Fgit.j4hangir.com\u002Ftmux\u002Ftmux-jump\u002F-\u002Freleases)\n[![license](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](LICENSE)\n\nLike [`flash.nvim`](https:\u002F\u002Fgithub.com\u002Ffolke\u002Fflash.nvim) \u002F [`leap.nvim`](https:\u002F\u002Fgithub.com\u002Fggandor\u002Fleap.nvim), but for the visible tmux pane. Press a key, start typing the word you're looking at, and the moment only one match remains the copy-mode cursor jumps there. No hints, no labels, no two-char mnemonics to memorise.\n\n---\n\n## ✨ Features\n\n- 🎯 **Incremental narrow** — type and watch matches shrink, auto-jump on unique match\n- 🔍 **Smart-case** — uppercase in query ⇒ case-sensitive, otherwise insensitive\n- 🖼️ **In-place overlay** — pane-sized borderless popup dims non-matches and highlights the rest\n- 🪶 **Single static binary** — Go, no runtime deps on the user's box\n- 🔒 **Fails safe** — any error path yields control back cleanly, never leaves the pane stuck\n- 🧵 **Visible pane only** — scoped to what's on screen, nothing funny with scrollback\n\n---\n\n## 📦 Install\n\n### With TPM\n\n```tmux\nset -g @plugin 'j4hangir\u002Ftmux-jump'\n```\n\nThen `prefix + I` to fetch & install.\n\n### Manual\n\n```sh\ngit clone https:\u002F\u002Fgit.j4hangir.com\u002Ftmux\u002Ftmux-jump ~\u002F.tmux\u002Fplugins\u002Ftmux-jump\necho \"run-shell ~\u002F.tmux\u002Fplugins\u002Ftmux-jump\u002Ftmux-jump.tmux\" >> ~\u002F.tmux.conf\ntmux source-file ~\u002F.tmux.conf\n```\n\nOn first launch a wizard prompts you to either **download the prebuilt Linux x86_64 binary** (from GitLab CI) or **build from source** with Go.\n\n### 🗑️ Uninstall\n\n```sh\ntmux unbind j                            # or whatever @jump-key you chose\nrm -rf ~\u002F.tmux\u002Fplugins\u002Ftmux-jump         # also removes bin\u002Ftmux-jump\nsed -i.bak '\u002Ftmux-jump\\|@jump-\u002Fd' ~\u002F.tmux.conf\ntmux source ~\u002F.tmux.conf\n```\n\n---\n\n## 🕹️ Usage\n\nPress `prefix + j` (default), start typing. That's it.\n\n| Key | Action |\n| --- | --- |\n| any printable char | append to query, re-narrow |\n| `Backspace` | pop last char |\n| `Enter` | jump to selected match |\n| `Tab` | (≤10 matches) enter **hint mode** — overlay hint chars on matches |\n| hint char | (in hint mode) jump to that match |\n| `↑` `↓` `←` `→` | (≤10 matches) cycle selection |\n| `Esc` \u002F `Ctrl-C` \u002F `Ctrl-G` | cancel (or exit hint mode) |\n\n- ✅ Unique match → auto-jump, no `Enter` needed\n- 🎯 ≤10 matches → hints auto-appear after ~300ms idle (or press `Tab` to show them now)\n- 🔔 Zero matches after a keystroke → bell, character rejected\n\n---\n\n## ⚙️ Config\n\n```tmux\nset -g @jump-key j                     # default: j  (invoked as prefix + j)\nset -g @jump-key-select J              # optional: jump, then visual-select the match\nset -g @jump-hints 'duhetonasi'        # up to 10 hint chars, one per match in hint mode\nset -g @jump-auto-hint-delay 300       # ms idle before hints auto-show (0 = disable, rounded up to nearest 100ms)\nset -g @jump-skip-wizard 0             # 1 = never prompt for auto-update on version mismatch\n```\n\n`@jump-key-select` is a second, opt-in binding: same picker, but on landing it enters copy-mode, begins a selection, and extends it across the matched query — ready to yank.\n\n---\n\n## 🔬 How it works\n\n```\nprefix+j  →  capture-pane -p  →  display-popup -B  →  Go TUI\n                                                       │\n                                       type chars  →  narrow\n                                                       │\n                                              unique match?\n                                                       │ yes\n                                                       ▼\n                                  copy-mode + cursor to (row, col)\n```\n\n1. **Capture** the visible pane to a temp file (`tmux capture-pane -p`).\n2. **Overlay** a borderless `display-popup` sized exactly to the pane — perfect in-place redraw.\n3. **Render** the captured text in the Go TUI: matches highlighted, everything else dimmed.\n4. **Narrow** on each keystroke (smart-case substring). Unique match → popup closes, pane drops into copy-mode with the cursor on `(row, col)`.\n\n---\n\n## 🛠️ Development\n\nRequires Go 1.22+ and tmux ≥ 3.2.\n\n```sh\nmake build   # CGO_ENABLED=0 static binary at bin\u002Ftmux-jump\nmake test    # go test .\u002F...\nmake clean\n```\n\nCI ([`.gitlab-ci.yml`](.gitlab-ci.yml)) runs `go test` + builds a static binary on every push; tags trigger a release with a downloadable asset link.\n\n---\n\n## 🚧 Known limitations (v1)\n\n- ASCII-first column math — CJK \u002F wide chars may misalign the landing column\n- Active pane only — no cross-pane targeting\n- Requires tmux ≥ 3.2 for borderless pane-sized popups\n\n---\n\n## 🙏 Credits\n\nInspired by:\n\n- [`schasse\u002Ftmux-jump`](https:\u002F\u002Fgithub.com\u002Fschasse\u002Ftmux-jump) — original tmux hint-based jumper\n- [`fcsonline\u002Ftmux-fingers`](https:\u002F\u002Fgithub.com\u002Ffcsonline\u002Ftmux-fingers) — the CI + install-wizard pattern lifted here\n- [`flash.nvim`](https:\u002F\u002Fgithub.com\u002Ffolke\u002Fflash.nvim) \u002F [`leap.nvim`](https:\u002F\u002Fgithub.com\u002Fggandor\u002Fleap.nvim) — the incremental-narrowing UX\n\n## 📝 License\n\nMIT — see [LICENSE](LICENSE).\n","tmux-jump 是一个用于 tmux 的增量缩小跳转插件，允许用户通过输入可见文本直接跳转到目标位置。其核心功能包括智能大小写匹配、即时反馈的无提示跳转以及在当前可视区域内的操作。该插件采用 Go 语言开发，生成单一静态二进制文件，无需额外依赖即可运行，并且具备故障安全机制，确保不会因为错误而卡住 tmux 窗口。适用于需要快速导航和定位 tmux 窗口中特定内容的场景，如代码审查或日志分析等。","2026-06-11 03:31:14","CREATED_QUERY"]