vim
。 我的问题是:如何配置它以使用已编辑文件的名称或使用诸如
vim | test.cpp
之类的标签名称标记tmux标签。#1 楼
随处可以: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")
将字符串添加文件名(格式请参见本文,展开请参见本文插入)
. "'"
添加最后的
'
以关闭命令。system("tmux rename-window 'vim | .vimrc'")
正如@erthalion在评论中所说,您可以在离开vim时使用:
autocmd VimLeave * call system("tmux rename-window 'tmux'")
进行清理。
评论
我认为将BufEnter事件包含在此列表中(即使在现有缓冲区之间切换时也可以更改标签),以及类似autocmd VimLeave *调用系统(“ tmux named-window'tmux'”)进行清理,将是很好的。
– erthalion
15年7月16日在4:02
#2 楼
要在退出vim时恢复默认的tmux命名方案,您还可以执行以下操作:autocmd VimLeave * call system("tmux setw automatic-rename")
评论
这与其他答案一起使用可提供最佳解决方案。我已经看到了tmux重命名窗口代码段,但这是有人第一次指出自动重命名tmux窗口选项。谢谢。
– f3xy
19年3月1日在19:06
#3 楼
感谢@raphael的回答,这就是我放入vimrc中的内容。我还为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
评论
这可以帮助:stackoverflow.com/a/15124717/2558252吗?谢谢您,但是请您详细说明一下过程吗?而且答案还不完整。那个家伙只是暗示了
问题得到了回答(正确的恕我直言),您可以接受吗?