Vim: зміна мітки для конкретної вкладки


19

Скажімо, у мене відкрито купу вкладок у Vim, а таблична лінія виглядає приблизно так:

1 v/file1.py 2 t/file.py 1 t/file.py 1 o/otherfile.py

Подивіться, як обидві вкладки кажуть "t / file.py"? Це різні файли, вони просто перетворюються на одну і ту ж мітку вкладки.

У моєму робочому процесі заголовки вкладок часто неоднозначні (так, шеф-кухар називає все "за замовчуванням.

Я хотів би перейменувати вкладки, щоб вказати, що вони логічно представляють:

1 homepage_view 2 tests 1 homepage_template 1 o/otherfile.py

Я добре вкладаю вкладки за замовчуванням до мітки на основі імені файлу, якщо я вільний змінити його, як тільки створена вкладка.

Як я можу це зробити у Vim?


1
Я зараз не встигаю експериментувати, але дивлюсь :help setting-tabline(для vim в терміналі) або :help setting-guitablabel(для gvim). Ви можете написати функцію, яка перевіряє локальну змінну табуляції і повертає ту чи іншу за замовчуванням. Потім, після відкриття вкладки :let t:mytablabel = 'homepage_template'.
benjifisher

Відповіді:


15

Є хороший маленький плагін під назвою Taboo, який робить це легко. Просто встановіть його, і тоді ви можете змінити назву вкладки за допомогою:

:TabooRename My Tab Title

Ви можете подивитися вихідний код цього плагіна, якщо вам цікаво написати власне рішення.


Tabooце фантастично. TabooResetі TabooRenameбуквально перемикає два "режими" рядка Tab ==> названа вкладка Taboo , а автоматично введена назва Vam. Це ідеально повторює « названий Windows » від Tmux. Ще краще, що вкладки під назвою Taboo можна відновити за допомогою Startify (або під будь-якими іншими інструментами для збереження сеансів).
llinfeng

8

Про gvim див

:help 'guitablabel'
:help setting-guitablabel

Встановіть для виразу вираз, який оцінюється t:mytablabel(локальна змінна вкладка), якщо вона існує, або ще порожній рядок (означає використовувати за замовчуванням):

:set guitablabel=%{exists('t:mytablabel')?t:mytablabel\ :''}

Можливо, це вже занадто складно, або, можливо, ви хочете стати більш фантазійним. У цьому випадку визначте функцію:

function! GuiTabLabel()
  return exists('t:mytablabel') ? t:mytablabel : ''
endfunction
:set guitablabel=%{GuiTabLabel()}
:set go+=e

Потім на будь-якій вкладці, де ви хочете змінити за замовчуванням, зробіть щось подібне

:let t:mytablabel = 'homepage_template'

Якщо ви використовуєте vim в терміналі, а не gvim, вам доведеться встановити 'tabline'параметр замість 'guitablable'. Це трохи складніше, оскільки вам потрібен єдиний вираз, який включає мітки для всіх відкритих вкладок. Є повний приклад під

:help setting-tabline
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.