Вопрос или проблема
Я игрался с настройками в документации kitty.
Я использую tab_title_template
, чтобы изменить заголовок вкладки.
Переменная {title}
включает в себя имя файла и путь. Есть ли способ исключить путь и оставить только имя файла?
Мой текущий kitty.conf выглядит следующим образом:
tab_title_template "{index}: {title}"
Я тоже сегодня занимаюсь kitty и столкнулся с тем же вопросом, что и вы. Вот как я сам решил эту проблему. Надеюсь, это вас вдохновит!
tab_title_template "{index}: {title[title.rfind("https://unix.stackexchange.com/")+1:]}"
Я использую это в своем kitty.conf
tab_title_template "{index}: {title.split("https://unix.stackexchange.com/")[-1]}"
Возможно, это уже поздно для вас, но значение “title”, которое kitty использует в шаблоне, поступает из заголовка, установленного в вашей оболочке.
Так что, например, в zsh вы можете добавить что-то вроде этого в свою zsh конфигурацию, чтобы изменить заголовок на что угодно:
DISABLE_AUTO_TITLE="true"
чтобы отключить автоматическое именование на основе значений по умолчанию, а затем
function stitle() { echo -en "\e]2;$@\a" }
вы можете добавить эту функцию и изменить её на что угодно. В этом примере она выводит только путь, а не “username@host”, что мне нравится, но вы можете изменить это, чтобы исключить путь.
Это также скрывает некрасивый username@host, показывая только имя файла.
title.split("https://unix.stackexchange.com/")[-1].split(':')[-1]
Ответ или решение
Чтобы настроить заголовок вкладки в терминале Kitty так, чтобы отображалось только имя файла без пути, необходимо использовать переменную tab_title_template
в вашем конфигурационном файле kitty.conf
.
Сначала вы можете начать с базового шаблона заголовка, который у вас уже есть:
tab_title_template "{index}: {title}"
Так как переменная {title}
включает в себя полный путь к файлу, мы можем воспользоваться методами обработки строк для извлечения только имени файла. Например, если вы используете конфигурацию с оболочкой Zsh и хотите изменить заголовки на уровне вашей оболочки, вы можете реализовать функцию, чтобы задать значение заголовка, исключающее путь.
Вот пример функции, которую вы можете добавить в ваш ~/.zshrc
:
DISABLE_AUTO_TITLE="true"
function stitle() {
echo -en "\e]2;$(basename "$1")\a"
}
Эта функция позволяет вам установить заголовок терминала, используя только имя файла без пути. Чтобы использовать эту функцию, вы просто вызываете stitle <путь_к_файлу>
, и заголовок вкладки будет обновлён.
Если вы хотите оставаться в пределах конфигурации Kitty и непосредственно изменить шаблон, попробуйте следующий подход:
tab_title_template "{index}: {title.split('/')[-1]}"
Здесь мы используем метод разделения строки на части с помощью символа /
и берем последний элемент, который является именем файла.
Если ваши файлы имеют другие разделители (например, \
для Windows), измените разделитель в соответствии с вашей платформой. Например:
tab_title_template "{index}: {title.split('\\')[-1]}"
Полное решение будет включать в себя:
- Установка конфигурации для отображения только имени файла с помощью
tab_title_template
. - Настройка вашей обертки оболочки, если необходимо, чтобы автоматизировать процесс заголовков для всех команд и файлов.
Эти методы позволят вам гибко управлять заголовками вкладок в Kitty и сделать ваше взаимодействие с терминалом более комфортным.