{"id":13740541,"url":"https://github.com/roosta/tmux-fuzzback","last_synced_at":"2025-04-13T16:09:37.704Z","repository":{"id":45332447,"uuid":"204438985","full_name":"roosta/tmux-fuzzback","owner":"roosta","description":"Search your tmux scrollback buffer using fuzzy matching","archived":false,"fork":false,"pushed_at":"2024-01-20T09:56:26.000Z","size":198,"stargazers_count":151,"open_issues_count":1,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-13T16:09:30.683Z","etag":null,"topics":["fuzzy-search","fzf","script","scrollback","searching","shell","sk","skim","terminal","tmux"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roosta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-08-26T09:11:40.000Z","updated_at":"2025-04-05T05:40:52.000Z","dependencies_parsed_at":"2023-12-15T19:45:03.316Z","dependency_job_id":"7f2c594f-c453-48d5-8671-812968039258","html_url":"https://github.com/roosta/tmux-fuzzback","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roosta%2Ftmux-fuzzback","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roosta%2Ftmux-fuzzback/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roosta%2Ftmux-fuzzback/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roosta%2Ftmux-fuzzback/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roosta","download_url":"https://codeload.github.com/roosta/tmux-fuzzback/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741204,"owners_count":21154255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fuzzy-search","fzf","script","scrollback","searching","shell","sk","skim","terminal","tmux"],"created_at":"2024-08-03T04:00:49.405Z","updated_at":"2025-04-13T16:09:37.681Z","avatar_url":"https://github.com/roosta.png","language":"Shell","funding_links":[],"categories":["Shell","Plugins"],"sub_categories":[],"readme":"# tmux-fuzzback\n\n[![Build Status](https://app.travis-ci.com/roosta/tmux-fuzzback.svg?branch=main)](https://app.travis-ci.com/github/roosta/tmux-fuzzback)\n[![GitHub](https://img.shields.io/badge/License-MIT-%232C78BF)](https://github.com/roosta/tmux-fuzzback/blob/master/LICENSE)\n\ntmux-fuzzback uses a fuzzy finder to search terminal scrollback buffer, and\njump to selected position.\n\n![preview](https://raw.githubusercontent.com/roosta/assets/master/tmux-fuzzback/preview.gif)\n\n## Attribution\n\nThis plugin would not be possible without the work done in\n[copycat](https://github.com/tmux-plugins/tmux-copycat). Go download it, use\nit, and give it some love. I also drew more than a little inspiration from\n[tmux-fzf-url](https://github.com/wfxr/tmux-fzf-url). Huge thanks to both.\n\n## Requirements\n\n- [tmux](https://github.com/tmux/tmux) version \u003e= [2.4](https://github.com/tmux/tmux/releases/tag/2.4)\n- A fuzzy finder\n  - [fzf](https://github.com/junegunn/fzf)\n  - [skim](https://github.com/lotabout/skim) - Requires extra [configuration](#fuzzy-finder)\n\n## Installation\n\n### Using [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended)\n\n```\nset -g @plugin 'roosta/tmux-fuzzback'\n```\n\n### Manually\n```shell\ngit clone https://github.com/roosta/tmux-fuzzback.git\n```\n\nAdd this to the bottom of `.tmux.conf`\n```\nrun-shell ~/path/to/repo/fuzzback.tmux\n```\n\nReload TMUX env\n```shell\ntmux source-file ~/.tmux.conf\n```\n\n## Usage\n\nTo use tmux-fuzzback, start it in a tmux session by typing \u003ckbd\u003eprefix\u003c/kbd\u003e +\n\u003ckbd\u003e?\u003c/kbd\u003e. Now you can start fuzzy searching in your scrollback buffer using\nfzf.\n\n## Options\n### Fuzzy finder\n\nFuzzback uses `fzf` as default, but you can set it to `sk` if you'd rather use [skim](https://github.com/lotabout/skim)\n\n```tmux\nset -g @fuzzback-finder 'sk'\n```\n\nFuzzback was built using fzf, and only later did I add support for skim. These\ntwo finders seem mostly comparable, although I might have missed something.\nPlease open an issue if you find any problems with this or other.\n\nAdditionally the popup window doesn't seem to work in sk-tmux, I'm unable to\nopen it on `tmux next-3.4` and `sk 0.10.2`, so it isn't currently configured to\nwork.\n\n### Key binding\n\nThe default key-binding is `?` preceded by a prefix, it can be modified by\nsetting value to `@fuzzback-bind` in the tmux config like this:\n\n```tmux\nset -g @fuzzback-bind s\n```\n\nMake sure this setting is set before loading the plugin.\n\n### Enable popup\n\nYou can enable tmux popup by setting this variable in your tmux conf.  Keep in\nmind that only recent versions `3.2` and above of tmux support this.\n\n```tmux\nset -g @fuzzback-popup 1\n```\n\n***Only works with fzf for the time being***\n\n### Hide preview\n\nPreview is shown by default, but you can hide it initially by setting\n`fuzzback-hide-preview` to `1`.\n\n```tmux\nset -g @fuzzback-hide-preview 1\n```\n\nYou can still toggle it back with your preferred keybinding (fzf default \u003ckbd\u003ectrl+p\u003c/kbd\u003e)\n\n### Popup size\n\nYou can set the popup size with this option.\n\n```tmux\nset -g @fuzzback-popup-size '90%'\n```\n\n### Finder layout\n\nYou can reverse the direction of selected finder by setting this variable. The\ndefault is `default`\n\n```tmux\nset -g @fuzzback-finder-layout 'reverse'\n```\n\n### Finder bind\n\nIf you want to bind some keybinding using sk/fzf --bind that's only used in\nfuzzback set this variable.\n\n```tmux\nset -g @fuzzback-finder-bind 'ctrl-y:execute-silent(echo -n {3..} | xsel -ib)+abort'\n```\n\nThis will copy the line matches in selected finder to the clipboard if `xsel` is available.\n\n\nRefer documentation for more:\n- [fzf documentation](https://github.com/junegunn/fzf#executing-external-programs)\n- [skim documentation](https://github.com/lotabout/skim#keymap)\n\n#### Toggling sort\n\nIf you need to toggle sort on and off you could add this to your fuzzback config\n\n- ref: https://github.com/roosta/tmux-fuzzback/issues/23\n\n```tmux\nset -g @fuzzback-finder-bind 'ctrl-s:toggle-sort'\n```\n\n### FZF colors\n\nYou can add colors to fuzzback as you do with `fzf`. \n\n```tmux\nset -g @fuzzback-fzf-colors 'bg+:#100E23,gutter:#323F4E,pointer:#F48FB1,info:#ffe6b3,hl:#F48FB1,hl+:#63f2f1'\n```\n\nAll highlight options can be found in fzf's [man page](https://www.mankier.com/1/fzf#--color).\n\n### Keybind table\n\nNormally the fuzzback keybind will go into the `prefix` table, but if you want\nto activate fuzzback without typing the prefix, you can change the table here.\nSay you wanted to activate fuzzback without prefix:\n\n```tmux\n# this is the same as bind-key -n\nset -g @fuzzback-table 'root'\n```\nMake sure this option, same as keybind, is set before loading the plugin.\n\n## Limitations\n\n### Column movement\n\nDepending on the complexity of the search query, fuzzback might not know what\ncolumn to move to, and will place you at the start of the line unless a literal\nmatch can be found.\n\n## Developing\n\nYou can run tests locally using [Vagrant](https://www.vagrantup.com/) by calling:\n\n```sh\n# cd project root\n./run_tests\n```\n\n## License\n\n[MIT](https://github.com/roosta/tmux-fuzzback/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froosta%2Ftmux-fuzzback","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froosta%2Ftmux-fuzzback","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froosta%2Ftmux-fuzzback/lists"}