Как удалить индексные номера и символы из заголовков окон tmux


Эта конфигурация удаляет номера индексов и другие символы из заголовков окон tmux, чтобы сделать их удобочитаемыми. Результат получился в следующем формате:

basePath/      -> at the terminal prompt

fileName       -> inside Vim

Это в основном взято из этого сообщения на StackOverflow.


3
задан 10 June 2021 в 01:14

1 ответ


~ / .tmux.conf

Разрешить переименование окон наши файлы конфигурации .vimrc и .bash_aliases ниже и установите формат заголовка, чтобы отображалось только имя.

Дополнительные параметры в разделах «ФОРМАТЫ» и «Имя переменной» см. На странице руководства tmux.Например, чтобы сохранить порядковый номер, вы должны изменить строки window-status-format и window-status-current-format на "#I: #W".

set -g allow-rename on
set-window-option -g window-status-format "#W"
set-window-option -g window-status-current-format "#W"

Специально для конфигурации без индексных номеров, вы можете настроить привязки создания вкладок и перемещения, чтобы они были более похожи на браузер и Vim.

# Create window -- Ctrl + t 
# Navigate windows -- Ctrl+ h,l 
bind -n C-t new-window
bind -n C-h previous-window
bind -n C-l next-window

~ / .vimrc

Установить заголовок окна для имени файла при входе в Vim и сохранении файла.

if exists('$TMUX')
    autocmd VimEnter,BufWrite * call system("tmux rename-window ' " . expand("%:t") . " '")
endif


~ / .bash_aliases

Я использовал bash вместо параметров автоматического переименования в tmux, чтобы заголовок окна был переименован в активную панель, если применимо. Я также переименовываю заголовки обратно в базовый путь при выходе из Vim здесь.

# If Tmux running...
tmux ls > /dev/null 2>&1
TMUX_STATUS=$?
if [ $TMUX_STATUS -eq 0 ]; then

    # Create function to get pwd, trim to "basepath/", 
    # and rename window
    basepathTitle () {
        getval=$(pwd)
        BASEPATH_TITLE=" ${getval##*/}/ "
        tmux rename-window "$BASEPATH_TITLE"
    }

    # Change cd functionality to rename window title to
    # pwd after every directory change
    cd () {

        builtin cd "$@"
        CD_STATUS=$?

        basepathTitle

        return "$CD_STATUS"
    }

    # Change vim functionality to change title 
    # back to basepath on close
    vim () {
        
        /usr/bin/vim "$@"
        VIM_STATUS=$?
        
        basepathTitle

        return "$VIM_STATUS"
    }

    # Set window title when tmux starts
    basepathTitle

fi

Источник tmux.conf
tmux source-file ~/.tmux.conf

Источник .bashrc
. .bashrc

2
ответ дан 28 July 2021 в 11:31

Другие вопросы по тегам:

Похожие вопросы: