Answers:
你去了:
autocmd BufReadPost,FileReadPost,BufNewFile,BufEnter * call system("tmux rename-window 'vim | " . expand("%:t") . "'")
分解:
autocmd BufReadPost,FileReadPost,BufNewFile,BufEnter * call
在缓冲区读取,文件读取或缓冲区新文件事件(请参阅参考资料:help autocmd-events
)上,执行以下命令:
call system()
调用系统函数并将其传递给文本:
"tmux rename-window 'vim | "
使用以以下内容开头的字符串重命名当前窗口 vim |
. expand("%:t")
添加到字符串的文件名(请参阅本文中的格式和这个岗位的扩大插入)
. "'"
添加最终'
命令以关闭命令。
展开后,它看起来像(在编辑.vimrc文件时):
system("tmux rename-window 'vim | .vimrc'")
正如@erthalion在评论中所说,您可以在离开vim时进行清理:
autocmd VimLeave * call system("tmux rename-window 'tmux'")
BufEnter
事件包含在此列表中(即使在现有缓冲区之间切换时也可以更改标签)是很好的,并且类似这样autocmd VimLeave * call system("tmux rename-window 'tmux'")
的清理操作。
这就是我把我的vimrc由于答案通过@raphael
我还为FocusGained和FocusLost事件安装了tmux-plugins / vim-tmux-focus-events插件。
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