{"id":13927059,"url":"https://github.com/vimpostor/vim-tpipeline","last_synced_at":"2025-04-05T21:05:08.321Z","repository":{"id":37634149,"uuid":"328505994","full_name":"vimpostor/vim-tpipeline","owner":"vimpostor","description":"Embed your vim statusline in tmux","archived":false,"fork":false,"pushed_at":"2024-09-11T18:57:46.000Z","size":418,"stargazers_count":380,"open_issues_count":2,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-29T20:02:30.868Z","etag":null,"topics":["integration","statusline","tmux","vim"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vimpostor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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}},"created_at":"2021-01-11T00:07:46.000Z","updated_at":"2025-03-19T21:53:02.000Z","dependencies_parsed_at":"2024-02-18T18:44:43.007Z","dependency_job_id":"e4c04134-292e-439b-be9a-e81484c2ef62","html_url":"https://github.com/vimpostor/vim-tpipeline","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimpostor%2Fvim-tpipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimpostor%2Fvim-tpipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimpostor%2Fvim-tpipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimpostor%2Fvim-tpipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vimpostor","download_url":"https://codeload.github.com/vimpostor/vim-tpipeline/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399871,"owners_count":20932876,"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":["integration","statusline","tmux","vim"],"created_at":"2024-08-07T16:01:22.253Z","updated_at":"2025-04-05T21:05:08.302Z","avatar_url":"https://github.com/vimpostor.png","language":"Vim Script","readme":"# vim-tpipeline\n\nEmbed your vim statusline in the tmux statusline!\n\n![Screenshot](https://user-images.githubusercontent.com/21310755/173618140-d2f76655-3de2-4abb-991b-d0f4dd7ed0e6.png)\n# Installation\n\nUsing **vim-plug**:\n\n```vim\nPlug 'vimpostor/vim-tpipeline'\n```\n\nIt is **highly recommended** to put this in your `~/.tmux.conf`:\n\n```bash\nset -g focus-events on\nset -g status-style bg=default\nset -g status-left-length 90\nset -g status-right-length 90\nset -g status-justify centre\n```\n\nRestart tmux and now you should see your vim statusline inside tmux.\n\n`vim-tpipeline` is compatible with all statuslines and can be used together with other statusline plugins like *lualine*. If it doesn't work with yours, file a bug report.\n\n## Requirements\n\n- Vim 8.2.4650 (or higher) OR Neovim 0.6 (or higher)\n- True color support (`set termguicolors` in vim)\n- For best experience use a terminal that supports [focus events](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-FocusIn_FocusOut) (Known good terminals are `wezterm`, `konsole` and `iTerm2`)\n\n# Configuration\n\nThis plugin will automatically embed your statusline in tmux with sane defaults.\nIf you want to have more control over where it is placed, disable the autoconfiguration with `g:tpipeline_autoembed` and embed the statusline manually, here is one example:\n\n```vim\n\" .vimrc\n\" You can also use Lua for configuration, see :h lua-vim-variables for help\nlet g:tpipeline_autoembed = 0\n```\n\n```bash\n# .tmux.conf\nset -g focus-events on\nset -g status-style bg=default\nset -g status-left '#(cat #{socket_path}-\\#{session_id}-vimbridge)'\nset -g status-left-length 90\nset -g status-right '#(cat #{socket_path}-\\#{session_id}-vimbridge-R)'\nset -g status-right-length 90\nset -g status-justify centre\n```\n\nBy default `vim-tpipeline` will copy your standard vim `statusline`.\nIf you want to use a different statusline just for tmux, you can set it manually:\n\n```vim\n\" tpipeline comes bundled with its own custom minimal statusline\nlet g:tpipeline_statusline = '%!tpipeline#stl#line()'\n\" You can also use standard statusline syntax, see :help stl\nlet g:tpipeline_statusline = '%f'\n```\n\nThere are many more options available to accomodate for every specific usecase. Check them out in the comprehensive help file using `:help tpipeline-configure`.\n\n# FAQ\n\n## But why?\n\nUsually there is plenty of empty space available in your tmux statusline, hence you make much better use of your space if you put your vim statusline there.\nAfter all you don't want to have your carefully handcrafted vim config end up as a bad Internet Explorer meme, do you?\n![meme_shitpost](https://user-images.githubusercontent.com/21310755/108243701-a71cc380-714e-11eb-9274-bc1cdb3590af.png)\n\n\n## Can I use the default *tpipeline statusline* outside of tmux as well?\n\nYes, use `set stl=%!tpipeline#stl#line()` in your `~/.vimrc`. In fact this plugin uses *Vim*'s autoload mechanism to lazily load features, i.e. if you don't use tmux, you can still use the statusline inside vim without loading unnecessary features.\n\n## Focus events are not working for me in tmux\n\nBesides putting `set -g focus-events on` in your `tmux` config, you also need to have the `XT`-capability available, which you can test by issuing the `tput XT` command. If the capability is not present inside tmux, then there are three ways to fix the [issue](https://github.com/tmux/tmux/issues/2606):\n\n- Put `set -g default-terminal \"xterm-256color\"` in your `tmux` config.\n- Force vim to enable it by using this in your `.vimrc`\n```vim\nlet \u0026t_fe = \"\\\u003cEsc\u003e[?1004h\"\nlet \u0026t_fd = \"\\\u003cEsc\u003e[?1004l\"\n```\n- Write your own custom terminfo entry based on *tmux-256color*\n\n## How do I stop the centered window list from flickering when changing panes?\n\n[Since tmux version 3.2](https://github.com/tmux/tmux/commit/3eb91efba160eff0b077a5fee902edb632f7fdca) you can use `absolute-centre` instead of `centre`:\n```diff\n-set -g status-justify centre\n+set -g status-justify absolute-centre\n```\n\n## Why should I use this plugin over [onestatus](https://github.com/narajaon/onestatus)?\n\n- In `onestatus` the tmux statusline is updated using a blocking call, whereas `tpipeline` uses non-blocking jobs to asynchronously update the statusline.\n- `tpipeline` works out of the box with your current vim statusline, whereas `onestatus` does not actually use your statusline at all and requires you to configure its own statusline.\n- As a result of the above, `onestatus` isn't able to use many vim features such as your vim colorscheme and requires you to redefine your colors. In `tpipeline`, vim colors are translated to tmux syntax automatically.\n- Simple things such as showing your current mode or linenumber require writing your own function in `onestatus`. In `tpipeline` this works out of the box.\n","funding_links":[],"categories":["Vim Script"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvimpostor%2Fvim-tpipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvimpostor%2Fvim-tpipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvimpostor%2Fvim-tpipeline/lists"}