问题描述
将tmux窗口名称设置为vim中当前打开的文件的名称时,我试图实现一致的行为。
这是我的.vimrc文件中的
augroup tmux
autocmd!
if exists('$TMUX')
autocmd BufReadPost,FileReadPost,BufNewFile,FocusGained * call system("tmux rename-window " . expand("%:t"))
autocmd VimLeave,FocusLost * call system("tmux set-window-option automatic-rename")
endif
augroup END
我遇到了两种情况问题:
切换窗格
这几乎可行。对于在窗格之间跳转,它会重命名每个焦点更改,但有时会失败并重置为默认值...我不知道为什么。
切换窗口
与切换窗格的行为相同,有时它会将您刚刚保留的窗口的名称重置为默认值
我需要改进此脚本,使其表现如下:
我想知道这是否与状态栏刷新间隔或.tmux.conf中的某些设置有关,所以在这里 my_tmuxconf
以下是一些怪异行为的GIF: switching windows switching panes
更新
此实现提供了更好的结果:
if exists('$TMUX')
autocmd BufEnter,FocusGained * call system("tmux rename-window " . expand("%:t"))
autocmd VimLeave * call system("tmux rename-window zsh")
endif
但是缺点是,当您从运行vim的窗格切换到运行其他内容(例如常规bash)的窗格时,无法重命名。
缺少的部分是要在每个窗格开关上自动重命名Tmux,但前提是焦点窗格没有运行vim。能做到吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)