{"id":33185887,"url":"https://github.com/morantron/tmux-fingers","last_synced_at":"2026-01-06T00:14:14.250Z","repository":{"id":37663172,"uuid":"57707299","full_name":"Morantron/tmux-fingers","owner":"Morantron","description":"copy pasting in terminal with vimium/vimperator like hints.","archived":false,"fork":false,"pushed_at":"2025-08-29T10:34:21.000Z","size":2279,"stargazers_count":1247,"open_issues_count":5,"forks_count":55,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-08-29T14:18:00.284Z","etag":null,"topics":["hint","keyboard-shortcuts","productivity","tmux","tmux-plugins","vimium","vimperator"],"latest_commit_sha":null,"homepage":null,"language":"Crystal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Morantron.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-05-01T17:55:44.000Z","updated_at":"2025-08-28T12:34:51.000Z","dependencies_parsed_at":"2023-11-16T07:39:46.626Z","dependency_job_id":"7c392c69-002e-478d-a63a-1f23d0113cbd","html_url":"https://github.com/Morantron/tmux-fingers","commit_stats":null,"previous_names":[],"tags_count":64,"template":false,"template_full_name":null,"purl":"pkg:github/Morantron/tmux-fingers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morantron%2Ftmux-fingers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morantron%2Ftmux-fingers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morantron%2Ftmux-fingers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morantron%2Ftmux-fingers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Morantron","download_url":"https://codeload.github.com/Morantron/tmux-fingers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Morantron%2Ftmux-fingers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27394204,"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","status":"online","status_checked_at":"2025-11-30T02:00:05.582Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["hint","keyboard-shortcuts","productivity","tmux","tmux-plugins","vimium","vimperator"],"created_at":"2025-11-16T05:00:20.104Z","updated_at":"2025-11-30T14:03:22.274Z","avatar_url":"https://github.com/Morantron.png","language":"Crystal","funding_links":[],"categories":["\u003ca name=\"utility\"\u003e\u003c/a\u003eUtilities"],"sub_categories":[],"readme":"![tmux-fingers](./logo.svg)\n\n![demo](https://github.com/Morantron/tmux-fingers/assets/3304507/cafe8877-1c98-41b1-bb65-b72129fea701)\n\n# Usage\n\nPress ( \u003ckbd\u003eprefix\u003c/kbd\u003e + \u003ckbd\u003eF\u003c/kbd\u003e ) to enter **[fingers]** mode, it will highlight relevant stuff in the current\npane along with letter hints. By pressing those letters, the highlighted match\nwill be copied to the clipboard. Less keystrokes == profit!\n\nHere is a list of the stuff highlighted by default.\n\n* File paths\n* SHAs\n* numbers ( 4+ digits )\n* hex numbers\n* IP addresses\n* kubernetes resources\n* UUIDs\n* git status/diff output\n\nCheckout [list of built-in patterns](#fingers-enabled-builtin-patterns).\n\n## Key shortcuts\n\nWhile in **[fingers]** mode, you can use the following shortcuts:\n\n* \u003ckbd\u003ea\u003c/kbd\u003e-\u003ckbd\u003ez\u003c/kbd\u003e: copies selected match to the clipboard\n* \u003ckbd\u003eCTRL\u003c/kbd\u003e + \u003ckbd\u003ea\u003c/kbd\u003e-\u003ckbd\u003ez\u003c/kbd\u003e: copies selected match to the clipboard and triggers [@fingers-ctrl-action](#fingers-ctrl-action). By default it triggers `:open:` action, which is useful for opening links in the browser for example.\n* \u003ckbd\u003eSHIFT\u003c/kbd\u003e + \u003ckbd\u003ea\u003c/kbd\u003e-\u003ckbd\u003ez\u003c/kbd\u003e: copies selected match to the clipboard and triggers [@fingers-shift-action](#fingers-shift-action). By default it triggers `:paste:` action, which automatically pastes selected matches.\n* \u003ckbd\u003eALT\u003c/kbd\u003e + \u003ckbd\u003ea\u003c/kbd\u003e-\u003ckbd\u003ez\u003c/kbd\u003e: copies selected match to the clipboard and triggers [@fingers-alt-action](#fingers-alt-action). There is no default, configurable by the user.\n* \u003ckbd\u003eTAB\u003c/kbd\u003e: toggle multi mode. First press enters multi mode, which allows to select multiple matches. Second press will exit with the selected matches copied to the clipboard.\n* \u003ckbd\u003eq\u003c/kbd\u003e, \u003ckbd\u003eESC\u003c/kbd\u003e or \u003ckbd\u003eCTRL\u003c/kbd\u003e + \u003ckbd\u003ec\u003c/kbd\u003e: exit **[fingers]** mode\n\n# Requirements\n\n* tmux 3.0 or newer\n\n# Installation\n\n## Using [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm)\n\nAdd the following to your list of TPM plugins in `.tmux.conf`:\n\n```\nset -g @plugin 'Morantron/tmux-fingers'\n```\n\nHit \u003ckbd\u003eprefix\u003c/kbd\u003e + \u003ckbd\u003eI\u003c/kbd\u003e to fetch and source the plugin. The first time you run it you'll be presented with a wizard to complete the installation. Depending on the platform, the wizard will offer the following installation methods:\n\n- Building from source (requires [crystal](https://crystal-lang.org/install/)). _Available in all platforms_\n- Install through [brew](https://brew.sh). _Mac OS only_.\n- Download standalone binary. _Linux x86 only_.\n\n## Manual\n\nClone the repo:\n\n```\n$ git clone https://github.com/Morantron/tmux-fingers ~/.tmux/plugins/tmux-fingers\n```\n\nSource it in your `.tmux.conf`:\n\n```\nrun-shell ~/.tmux/plugins/tmux-fingers/tmux-fingers.tmux\n```\n\nReload TMUX conf by running:\n\n```\n$ tmux source-file ~/.tmux.conf\n```\n\nThe first time you run it you'll be presented with a wizard to complete the installation.\n\n# Configuration\n\nNOTE: for changes to take effect, you'll need to source again your `.tmux.conf` file.\n\n* [@fingers-key](#fingers-key)\n* [@fingers-jump-key](#fingers-jump-key)\n* [@fingers-pattern-N](#fingers-pattern-n)\n* [@fingers-main-action](#fingers-main-action)\n* [@fingers-ctrl-action](#fingers-ctrl-action)\n* [@fingers-alt-action](#fingers-alt-action)\n* [@fingers-shift-action](#fingers-shift-action)\n* [@fingers-hint-style](#fingers-hint-style)\n* [@fingers-highlight-style](#fingers-highlight-style)\n* [@fingers-backdrop-style](#fingers-backdrop-style)\n* [@fingers-selected-hint-style](#fingers-selected-hint-style)\n* [@fingers-selected-highlight-style](#fingers-selected-highlight-style)\n* [@fingers-hint-position](#fingers-hint-position)\n* [@fingers-keyboard-layout](#fingers-keyboard-layout)\n* [@fingers-show-copied-notification](#fingers-show-copied-notification)\n* [@fingers-enabled-builtin-patterns](#fingers-enabled-builtin-patterns)\n* [@fingers-use-system-clipboard](#fingers-use-system-clipboard)\n\nRecipes:\n\n* [Start tmux-fingers without prefix](#start-tmux-fingers-without-prefix)\n* [Using only specific patterns](#using-only-specific-patterns)\n* [Using arbitrary commands](#using-arbitrary-commands)\n* [Target adjacent panes](#target-adjacent-panes)\n\n## @fingers-key\n\n`default: F`\n\nCustomize how to enter fingers mode. Always preceded by prefix: `prefix + @fingers-key`.\n\nFor example:\n\n```\nset -g @fingers-key F\n```\n\n## @fingers-jump-key\n\n`default: J`\n\nCustomize how to enter fingers jump mode. Always preceded by prefix: `prefix + @fingers-jump-key`.\n\nIn jump mode, the cursor will be placed in the position of the match after the hint is selected.\n\n## @fingers-pattern-N\n\nYou can also add additional patterns if you want more stuff to be highlighted:\n\n```\n# You can define custom patterns like this\nset -g @fingers-pattern-0 'git rebase --(abort|continue)'\n\n# Increment the number and define more patterns\nset -g @fingers-pattern-1 'some other pattern'\n\n# You can use a named capture group like this (?\u003cmatch\u003eYOUR-REGEX-HERE)\n# to only highlight and copy part of the match.\nset -g @fingers-pattern-2 'capture (?\u003cmatch\u003eonly this)'\n\n# Watch out for backslashes! For example the regex \\d{50} matches 50 digits.\nset -g @fingers-pattern-3 '\\d{50}'  # No need to escape if you use single quotes\nset -g @fingers-pattern-4 \"\\\\d{50}\" # If you use double quotes, you'll need to escape backslashes for special characters to work\nset -g @fingers-pattern-5 \\\\d{50} # Escaping also needed if you don't use any quotes\n```\n\nPatterns use [PCRE pattern syntax](https://www.pcre.org/original/doc/html/pcrepattern.html).\n\nIf the introduced regex contains an error, an error will be shown when invoking the plugin.\n\n## @fingers-main-action\n\n`default: :copy:`\n\nBy default **tmux-fingers** will copy matches in tmux and system clipboard.\n\nIf you still want to set your own custom command you can do so like this:\n\n```\nset -g @fingers-main-action '\u003cyour command here\u003e'\n```\nThis command will also receive the following:\n\n  * `MODIFIER`: environment variable set to `ctrl`, `alt`, or `shift` specififying which modifier was used when selecting the match.\n  * `HINT`: environment variable the selected letter hint itself ( ex: `q`, `as`, etc... ).\n  * `stdin`: copied text will be piped to `@fingers-copy-command`.\n\nYou can also use the following special values:\n\n* `:paste:` Copy the the match and paste it automatically.\n* `:copy:` Uses built-in system clipboard integration to copy the match.\n* `:open:` Uses built-in open file integration to open the file ( opens URLs in default browser, files in OS file navigator, etc ).\n\n## @fingers-ctrl-action\n\n`default: :open:`\n\nSame as [@fingers-main-action](#fingers-main-action) but only called when match is selected by holding \u003ckbd\u003ectrl\u003c/kbd\u003e\n\n## @fingers-alt-action\n\nSame as [@fingers-main-action](#fingers-main-action) but only called when match is selected by holding \u003ckbd\u003ealt\u003c/kbd\u003e\n\n## @fingers-shift-action\n\n`default: :paste:`\n\nSame as [@fingers-main-action](#fingers-main-action) but only called when match is selected by holding \u003ckbd\u003eshift\u003c/kbd\u003e\n\n## @fingers-hint-style\n\n`default: \"fg=green,bold\"`\n\nWith this option you can define the styles for the letter hints.\n\nYou can customize the styles using the same syntax used in `.tmux.conf` for styling the status bar.\n\nMore info in the `STYLES` section of `man tmux`.\n\nSupported styles are: `bright`, `bold`, `dim`, `underscore`, `italics`.\n\n## @fingers-highlight-style\n\n`default: \"fg=yellow\"`\n\nCustom styles for the highlighted match. See [@fingers-hint-style](#fingers-hint-style) for more details.\n\n## @fingers-backdrop-style\n\n`default: \"\"`\n\nCustom styles for all the text that is not matched. See [@fingers-hint-style](#fingers-hint-style) for more details.\n\n## @fingers-selected-hint-style\n\n`default: \"fg=blue,bold\"`\n\nFormat for hints in selected matches in multimode.\n\n## @fingers-selected-highlight-style\n\n`default: \"fg=blue\"`\n\nFormat for selected matches in multimode.\n\n## @fingers-hint-position\n\n`default: \"left\"`\n\nControl the position where the hint is rendered. Possible values are `\"left\"`\nand `\"right\"`.\n\n## @fingers-keyboard-layout\n\n`default: \"qwerty\"`\n\nHints are generated taking optimal finger movement into account. You can choose between the following:\n\n  * `qwerty`: the default, use all letters\n  * `qwerty-left-hand`: only use letters easily reachable with left hand\n  * `qwerty-right-hand`: only use letters easily reachable with right hand\n  * `qwerty-homerow`: only use letters in the homerow\n  * `qwertz`\n  * `qwertz-left-hand`\n  * `qwertz-right-hand`\n  * `qwertz-homerow`\n  * `azerty`\n  * `azerty-left-hand`\n  * `azerty-right-hand`\n  * `azerty-homerow`\n  * `colemak`\n  * `colemak-left-hand`\n  * `colemak-right-hand`\n  * `colemak-homerow`\n  * `dvorak`\n  * `dvorak-left-hand`\n  * `dvorak-right-hand`\n  * `dvorak-homerow`\n\n## @fingers-show-copied-notification\n\n`default: 0`\n\nShow a message using `tmux display-message` notifying about the copied result.\n\n## @fingers-enabled-builtin-patterns\n\n`default: all`\n\nA list of comma separated pattern names. Built-in patterns are the following:\n\n| Name              | Description                                               | Example                                        |\n| ----------------- | --------------------------------------------------------- | ---------------------------------------------- |\n| ip                | ipv4 addresses                                            | `192.168.0.1`                                  |\n| uuid              | uuid identifier                                           | `f1b43afb-773c-4da2-9ae5-fef1aa6945ce`         |\n| sha               | sha identifier                                            | `c8b911e2c7e9a6cc57143eaa12cad57c1f0d69df`     |\n| digit             | four or more digits                                       | `1337`                                         |\n| url               | urls (supported protocols: http/https/git/ssh/file)       | `https://asdf.com`                             |\n| path              | file paths                                                | `path/to/file`                                 |\n| hex               | hexidecimal numbers                                       | `0x00FF`                                       |\n| kubernetes        | kubernetes identifier                                     | `deployment.apps/zookeeper`                    |\n| git-status        | will match file paths in the output of git status         | `modified: ./path/to/file`                     |\n| git-status-branch | will match branch name in the output of git status        | `Your branch is up to date withname-of-branch` |\n| diff              | will match paths in diff output                           | `+++ a/path/to/file`                           |\n\n## @fingers-cli\n\nYou can set up key bindings directly to invoke tmux-fingers by using a special global option `@fingers-cli` exposed by the plugin.\n\nThe following options are available:\n\n```\nUsage:\n        tmux-fingers start \u003carguments\u003e [options]\n\nArguments:\n        pane_id    pane id (also accepts tmux target-pane tokens specified in tmux man pages) (required)\n\nOptions:\n        --mode              can be \"jump\" or \"default\" (default: default)\n        --patterns          comma separated list of pattern names\n        --main-action       command to which the output will be piped\n        --ctrl-action       command to which the output will be piped when holding CTRL key\n        --alt-action        command to which the output will be piped when holding ALT key\n        --shift-action      command to which the output will be pipedwhen holding SHIFT key\n        -h, --help          prints help\n```\n\nCheck some examples in the [Recipes](#Recipes) section below.\n\n## @fingers-use-system-clipboard\n\n`default: 1`\n\nWhether to use the system clipboard when copying matches. If set to `0`,\ntmux-fingers will only copy matches to the tmux buffer.\n\n# Recipes\n\n## Start tmux-fingers without prefix\n\nYou can start tmux-fingers without having to press tmux prefix by adding bindings like this:\n\n```\n# tmux.conf\n\n# Start tmux fingers by pressing Alt+F\nbind -n M-f run -b \"#{@fingers-cli} start #{pane_id}\"\n\n# Start tmux fingers in jump mode by pressing Alt+J\nbind -n M-j run -b \"#{@fingers-cli} start #{pane_id} --mode jump\"\n\n```\n\n## Using only specific patterns\n\nYou can start tmux-fingers with an specific set of built-in or custom patterns.\n\n```\n# match urls with prefix + u\nbind u run -b \"#{@fingers-cli} start #{pane_id} --patterns url\"\n\n# match hashes with prefix + h\nbind h run -b \"#{@fingers-cli} start #{pane_id} --patterns sha\"\n\n# match git stuff with prefix + g\nbind g run -b \"#{@fingers-cli} start #{pane_id} --patterns git-status,git-status-branch\"\n\n# match custom pattern with prefix + y\nset -g @fingers-pattern-yolo \"yolo.*\"\nbind y run -b \"#{@fingers-cli} start #{pane_id} --patterns yolo\"\n```\n\n## Using arbitrary commands\n\nYou can use tmux-fingers with any arbitrary command.\n\n```\n# edit file using nvim in a new tmux window with prefix + e\nbind e run -b \"#{@fingers-cli} start #{pane_id} --patterns path --main-action 'xargs tmux new-window nvim'\"\n```\n\n## Target adjacent panes\n\nYou can use tmux target-pane tokens to target adjacent panes. This\nconfiguration uses vim-style \u003ckbd\u003eALT\u003c/kbd\u003e+\u003ckbd\u003ehjkl\u003c/kbd\u003e keys to\ndirectionally adjacent panes.\n\nAlso uses \u003ckbd\u003eALT\u003c/kbd\u003e+\u003ckbd\u003eo\u003c/kbd\u003e to target the last pane.\n\n```\nbind -n M-h run -b \"#{@fingers-cli} start {left-of}\"\nbind -n M-j run -b \"#{@fingers-cli} start {down-of}\"\nbind -n M-k run -b \"#{@fingers-cli} start {up-of}\"\nbind -n M-l run -b \"#{@fingers-cli} start {right-of}\"\nbind -n M-o run -b \"#{@fingers-cli} start {last}\"\n```\n\n# Acknowledgements and inspiration\n\nThis plugin is heavily inspired by\n[tmux-copycat](https://github.com/tmux-plugins/tmux-copycat) ( **tmux-fingers**\npredefined search are *copycatted* :trollface: from\n[tmux-copycat](https://github.com/tmux-plugins/tmux-copycat) ).\n\nKudos to [bruno-](https://github.com/bruno-) for paving the way to tmux\nplugins! :clap: :clap:\n\n# License\n\n[MIT](https://github.com/Morantron/tmux-fingers/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorantron%2Ftmux-fingers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorantron%2Ftmux-fingers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorantron%2Ftmux-fingers/lists"}