Заголовок вкладки Kitty Terminal без пути

Вопрос или проблема

Я игрался с настройками в документации 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]}"

Полное решение будет включать в себя:

  1. Установка конфигурации для отображения только имени файла с помощью tab_title_template.
  2. Настройка вашей обертки оболочки, если необходимо, чтобы автоматизировать процесс заголовков для всех команд и файлов.

Эти методы позволят вам гибко управлять заголовками вкладок в Kitty и сделать ваше взаимодействие с терминалом более комфортным.

Оцените материал
Добавить комментарий

Капча загружается...