此配置会从 tmux 的窗口标题中删除索引号和其他符号,以提高可读性。其结果为以下格式:
basePath/ -> at the terminal prompt
fileName -> inside Vim
它主要来自于这个 StackOverflow 帖子。
答案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