Closed EdenEast closed 2 years ago
I just found that, nvim already has key mapping for change tabs. In :help tabpage
:
gt *i_CTRL-<PageDown>* *i_<C-PageDown>*
Go to the next tab page. Wraps around from the last to the
first one.
{count}gt Go to tab page {count}. The first tab page has number one.
g<Tab> Go to previous (last accessed) tab page.
gT Go to the previous tab page. Wraps around from the first one
to the last one.
One thing should be noticed that, the count of {count}gt
is the position of a tab in tabline, not the tab id (displayed in presets). In nvim, there are not a keymapping or API for goto tab by tab id. It has some confuse but more useful. Because the tab id is only use for distinguish tab in script or use by unique name.
Maybe I should display the {count}
, tab number in the label, instead of id.
From looking at the tabpage help it does look like the count is the number that is used for navigation. If you move your tabs around then the counts might not be in order. Having a way to select the tab based on where it is visually would be a nice helper function. Example:
function focus_tab(n)
local list = vim.api.nvim_list_tabpages()
if n > #list then
return
end
vim.api.nvim_set_current_tabpage(list[n])
end
Having some helper functions that work on the visual location of the tabs instead of their id's or count's would be useful for mappings. Also if you allow the tab to be renamed.
The APIs of tab may be design many years before in vim, so it is a little confusing. In the {count}gt
I mentioned below , {count}
is what you want.
When i first time writle tabby I don't know this, so the number in presets is tab id, it is not useful to nav in tabs. I'm considering to replace to tab's position number. So, you can made it by using {count}gt
or remap it.
Maybe I should display the
{count}
, tab number in the label, instead of id.
Updated. The number in tabs' label of presets is tab number now. You can use {number}gt
to nav in tabs.
First off great plugin!
As a window manager user I see these tabs like workspaces. It would be great to have functions to manipulate tabs. For example selecting a tab based on a number. So you can map something like
<leader>1
to jump to thefirst
workspace. What are your thoughts on this?