{"id":13896495,"url":"https://github.com/Iron-E/nvim-tabmode","last_synced_at":"2025-07-17T12:33:53.176Z","repository":{"id":56003431,"uuid":"264306232","full_name":"Iron-E/nvim-tabmode","owner":"Iron-E","description":"A rewrite of Iron-E/vim-tabmode using Iron-E/nvim-libmodal","archived":false,"fork":false,"pushed_at":"2023-02-17T20:03:46.000Z","size":30,"stargazers_count":18,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-11-19T19:05:55.848Z","etag":null,"topics":["modal-editing","neovim","nvim","nvim-libmodal","tabmode","tabs","tabs-management","vim","vim-plugin","vim-tabmode"],"latest_commit_sha":null,"homepage":null,"language":"Lua","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/Iron-E.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-15T21:52:25.000Z","updated_at":"2024-07-26T19:33:53.000Z","dependencies_parsed_at":"2024-11-19T18:54:47.713Z","dependency_job_id":null,"html_url":"https://github.com/Iron-E/nvim-tabmode","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iron-E%2Fnvim-tabmode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iron-E%2Fnvim-tabmode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iron-E%2Fnvim-tabmode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iron-E%2Fnvim-tabmode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Iron-E","download_url":"https://codeload.github.com/Iron-E/nvim-tabmode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226265521,"owners_count":17597222,"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":["modal-editing","neovim","nvim","nvim-libmodal","tabmode","tabs","tabs-management","vim","vim-plugin","vim-tabmode"],"created_at":"2024-08-06T18:02:57.724Z","updated_at":"2024-11-25T02:30:42.387Z","avatar_url":"https://github.com/Iron-E.png","language":"Lua","funding_links":[],"categories":["Lua"],"sub_categories":[],"readme":"# Description\n\n`nvim-tabmode` is a plugin that provides a new mode in Neo/vim for managing tabs.\n\nAlthough it is recommended that splits and buffers are used over tabs when possible, there _are_ scenarios when tabs are necessary. This plugin hopes to make that easier.\n\n## Installation\n\nEither use `packadd` or any package manager. I recommend using [lazy.nvim](https://github.com/folke/lazy.nvim).\n\n### Requirements\n\n* Neovim 0.7+\n* [nvim-libmodal](https://github.com/Iron-E/nvim-libmodal)\n* [vim-tabmode](https://github.com/Iron-E/vim-tabmode) is __NOT__ installed.\n\n### Examples\n\n`lazy.nvim`:\n\n```lua\n{'Iron-E/nvim-tabmode',\n  cmd = 'TabmodeEnter', -- don't load until using this command\n  config = true, -- automatically call `bufmode.setup()`; not needed if you specify `opts`\n  dependencies = {'Iron-E/nvim-libmodal'},\n  keys = {{'\u003cLeader\u003e\u003cTab\u003e', desc = 'Enter buffer mode', mode = 'n'}}, -- don't load until pressing these keys\n  -- opts = {}, (put `setup` options here, e.g. `opts = {enter_mapping = false}`\n},\n```\n\nOther examples:\n\n* [dein.vim](https://github.com/Shougo/dein.vim):\n  * Add `call dein#add('https://github.com/Iron-E/nvim-bufmode')` to `~/.config/nvim/init.vim`\n  * `:call dein#install()`\n* [NeoBundle](https://github.com/Shougo/neobundle.vim):\n  * Add `NeoBundle 'https://github.com/Iron-E/nvim-bufmode'` to `~/.config/nvim/init.vim`\n  * Re-open vim or execute `:source ~/.vimrc`\n* [vim-plug](https://github.com/junegunn/vim-plug):\n  * Add `Plug 'https://github.com/Iron-E/nvim-bufmode'` to `~/.config/nvim/init.vim`\n  * `:PlugInstall` or `$ vim +PlugInstall +qall`\n* [Vundle](https://github.com/gmarik/vundle):\n  * Add `Plugin 'https://github.com/Iron-E/nvim-bufmode'` to `~/.config/nvim/init.vim`\n  * `:PluginInstall` or `$ vim +PluginInstall +qall`\n\n## Usage\n\nEnter `nvim-tabmode` with `\u003cleader\u003e\u003cTab\u003e` or `:TabmodeEnter`.\n\n| Key         | Use                                                    |\n|:-----------:|:------------------------------------------------------:|\n| `\u003cEsc\u003e`     | Leave `tabmode`                                        |\n| `?`         | Show help message                                      |\n| `^`/`0`     | Go to the beginning of the tab list.                   |\n| `\u003cS-0\u003e`     | Move the current tab to the beginning of the tab list. |\n| `$`         | Go to the end of the tab list.                         |\n| `%`         | Move the current tab to the end of the tab list.       |\n| `b`/`j`/`h` | Tab left                                               |\n| `w`/`k`/`l` | Tab right                                              |\n| `a`         | Append a tab and switch to it.                         |\n| `A`         | Append a tab to the end and switch to it.              |\n| `i`         | Prepend a tab and switch to it.                        |\n| `I`         | Prepend a tab to the beginning and switch to it.       |\n| `d`         | Delete the current tab.                                |\n| `s`         | Replace the current tab with a new tab.                |\n\nSee `:help tabmode-usage` for additional details.\n\n## Configuration\n\nTo customize the plugin, set `vim.g.bufmode_mappings` before loading it, or call\n`setup` after:\n\n```vim\nlet g:bufmode_mappings = {\n  \\ '$': 'tablast',\n  \\ '%': '$tabmove',\n  \\ ')': '0tabmove',\n  \\ '0': 'tabfirst',\n  \\ '?': 'help tabmode-usage',\n  \\ 'a': 'tabnew',\n  \\ 'A': '$tabnew',\n  \\ 'b': 'tabprevious',\n  \\ 'B': '-tabmove',\n  \\ 'd': 'tabclose',\n  \\ 'i': '-tabnew',\n  \\ 'I': '0tabnew',\n}\n```\n```lua\nrequire('tabmode').setup {\n  enter_mapping = '\u003cleader\u003e\u003ctab\u003e', -- false to disable\n  bufferline = false, -- add bufferline.nvim keymaps\n  barbar = false, -- add barbar.nvim keymaps\n  keymaps = { -- defaults:\n    ['$'] = 'tablast',\n    ['%'] = '$tabmove',\n    [')'] = '0tabmove',\n    ['0'] = 'tabfirst',\n    ['?'] = 'help tabmode-usage',\n    ['a'] = 'tabnew',\n    ['A'] = '$tabnew',\n    ['b'] = 'tabprevious',\n    ['B'] = '-tabmove',\n    ['d'] = 'tabclose',\n    ['i'] = '-tabnew',\n    ['I'] = '0tabnew',\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIron-E%2Fnvim-tabmode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FIron-E%2Fnvim-tabmode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIron-E%2Fnvim-tabmode/lists"}