Powiedzmy, że mam kilka kart otwartych w Vimie, a tabulatory wyglądają mniej więcej tak:
1 v/file1.py 2 t/file.py 1 t/file.py 1 o/otherfile.py
Zobacz, jak obie karty mówią „t / file.py”? To są różne pliki, po prostu zamieniają się w tę samą etykietę zakładki.
W moim przepływie pracy tytuły kart są często niejednoznaczne (tak dla szefa kuchni nazywającego wszystko „default.rb”) lub nieprzydatne („Wiem, że jedna z tych 8 kart z 4 buforami ma ten plik, którego szukam ...”).
Chciałbym zmienić nazwę kart, aby wskazać, co logicznie reprezentują:
1 homepage_view 2 tests 1 homepage_template 1 o/otherfile.py
Nie mam nic przeciwko, aby karty domyślnie tworzyły etykietę opartą na nazwie pliku, o ile mogę ją zmienić po utworzeniu karty.
Jak mogę to zrobić w Vimie?
:help setting-tabline
(dla vima w terminalu) lub:help setting-guitablabel
(dla gvima). Możesz napisać funkcję, która sprawdza zmienną lokalną tabulatora i zwraca tę lub inną wartość domyślną. Następnie, po otwarciu zakładki:let t:mytablabel = 'homepage_template'
.Odpowiedzi:
Jest ładna mała wtyczka o nazwie Taboo, która ułatwia to. Wystarczy go zainstalować, a następnie możesz zmienić tytuł zakładki za pomocą:
Możesz zajrzeć do kodu źródłowego tej wtyczki, jeśli chcesz napisać własne rozwiązanie.
źródło
Taboo
jest fantastyczna.TabooReset
iTabooRename
dosłownie przełącza dwa „tryby” Tab-line ==> tabulatora o nazwie Taboo i tabulatora o automatycznej nazwie Vima. To doskonale replikuje „ nazwany Windows ” z Tmux. Co więcej, karty o nazwie Taboo można przywrócić za pomocą Startify (lub dowolnego innego narzędzia do zapisywania sesji).W przypadku gvim patrz
Ustaw opcję wyrażenia, którego
t:mytablabel
wynikiem jest (zmienna lokalna tab), jeśli istnieje, lub pusty ciąg znaków (co oznacza użycie wartości domyślnej):Może to już jest zbyt skomplikowane, a może chcesz być bardziej wyszukany. W takim przypadku zdefiniuj funkcję:
Następnie w dowolnej zakładce, w której chcesz zastąpić domyślną, zrób coś takiego
Jeśli używasz vima w terminalu, a nie gvim, musisz ustawić
'tabline'
opcję zamiast'guitablable'
. Jest to trochę bardziej skomplikowane, ponieważ potrzebujesz jednego wyrażenia zawierającego etykiety dla wszystkich otwartych kart. Kompletny przykład znajduje się poniżejźródło