From bd888a05db8e0ae6b45eb941151c854382d46c5a Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Sun, 12 Apr 2026 15:55:20 +0000 Subject: [PATCH] tabline: expose AirlineSelectFirstTab/AirlineSelectLastTab closes: #2700 Signed-off-by: Christian Brabandt --- CHANGELOG.md | 2 ++ autoload/airline/extensions/tabline/buffers.vim | 2 ++ autoload/airline/extensions/tabline/tabs.vim | 2 ++ doc/airline.txt | 9 +++++++-- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da2bef31..00d45587 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,8 @@ This is the Changelog for the vim-airline project. - Support multi-line statusline (Vim only) - Support clickable buffers in Vim - Support for showing `repo:/path/file` path like style using the `gitrepo` style + - tabline: Expose `AirlineSelectFirstTab` and `AirlineSelectLastTab` + - tabline: Add a new `buffer_idx_mode` that adds a lot more mappings. - Other - Changed CI from travis-ci.org to GitHub Actions - Introduce Vim script static analysis using [reviewdog](https://github.com/reviewdog/action-vint) diff --git a/autoload/airline/extensions/tabline/buffers.vim b/autoload/airline/extensions/tabline/buffers.vim index 72074aec..bf736ce1 100644 --- a/autoload/airline/extensions/tabline/buffers.vim +++ b/autoload/airline/extensions/tabline/buffers.vim @@ -221,6 +221,8 @@ function! s:map_keys() endif noremap AirlineSelectPrevTab :call jump_to_tab(-v:count1) noremap AirlineSelectNextTab :call jump_to_tab(v:count1) + noremap AirlineSelectFirstTab :call select_tab(0) + noremap AirlineSelectLastTab :call select_tab(len(airline#extensions#tabline#buflist#list()) - 1) " Enable this for debugging " com! AirlineBufferList :echo map(copy(s:current_visible_buffers), {i,k -> k.": ".bufname(k)}) endif diff --git a/autoload/airline/extensions/tabline/tabs.vim b/autoload/airline/extensions/tabline/tabs.vim index f32fd632..c27dd3d2 100644 --- a/autoload/airline/extensions/tabline/tabs.vim +++ b/autoload/airline/extensions/tabline/tabs.vim @@ -125,6 +125,8 @@ function! airline#extensions#tabline#tabs#map_keys() noremap AirlineSelectPrevTab gT " tabn {count} goes to count tab does not go {count} tab pages forward! noremap AirlineSelectNextTab :exe repeat(':tabn\|', v:count1) + noremap AirlineSelectFirstTab ::tabfirst + noremap AirlineSelectLastTab ::tablast endfunction function! airline#extensions#tabline#tabs#tabnr_formatter(nr, i) abort diff --git a/doc/airline.txt b/doc/airline.txt index 26d758bb..26d305c7 100644 --- a/doc/airline.txt +++ b/doc/airline.txt @@ -1279,9 +1279,14 @@ Note: Not displayed if the number of tabs is less than 1 This matches that of the numbering scheme of |:buffers|, letting `AirlineSelectTab67` to reference buffer 67. - Note: To avoid ambiguity, there won't be AirlineSelectTab1 - - AirlineSelectTab9 maps in mode 2 and 3. + Note: To avoid ambiguity, there won't be + AirlineSelectTab1 - AirlineSelectTab9 + maps in mode 2 and 3. + To go to the very first/last buffer, you can use: > + nmap FT AirlineSelectFirstTab + nmap LT AirlineSelectLastTab +< Note: Mappings will be ignored for filetypes that match `g:airline#extensions#tabline#keymap_ignored_filetypes`.