如何解决最终的Vim / Tmux窗口重命名脚本
将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窗口重命名为文件名(效果不佳)
- 离开窗口会保留其名称
- 中继大文件名(甚至可以吗?)
我想知道这是否与状态栏刷新间隔或.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 举报,一经查实,本站将立刻删除。