我是tmux的新手,我正在试图弄清楚如何编辑配置,以便vim打开的窗口显示在任务栏中,而不是像vim中打开#:vim的文件名一样
(ie "#:filename.php").看起来它应该是常见的事情,但我的搜索 - foo失败了.
che*_*ner 36
这是一个部分答案.它可以改进,但我现在没有时间解决它.
将以下内容放入您的.vimrc:
autocmd BufReadPost,FileReadPost,BufNewFile * call system("tmux rename-window " . expand("%"))
Run Code Online (Sandbox Code Playgroud)
还有其他事件(参见:help autocmd-eventsVim)也可用于处理.我还没想到的一件事是如果你vim在两个窗格的每个窗格中都有一个打开的实例,并且从一个窗格切换到另一个窗格,如何更改窗口名称.vim不知道活动tmux,因此不会vim触发任何事件.
gos*_*pes 17
有可能的!我想分享这个答案,因为我一直在寻找它.终于有时间自己实施了.将以下内容放入您的.vimrc:
autocmd BufEnter * let &titlestring = ' ' . expand("%:t")
set title
Run Code Online (Sandbox Code Playgroud)
它将终端标题设置为仅当前处于焦点%t的文档标题(代表没有路径的文档标题).由于该事件BufEnter,每次将焦点切换到另一个文档时,终端标题都会更改.离开Vim时,它也会变回原始状态.将以下内容放入(或替换).tmux.conf:
set-window-option -g window-status-current-format "[#I #W#T]"
set-window-option -g window-status-format "[#I #W#T]"
Run Code Online (Sandbox Code Playgroud)
没有必要完全复制它,但它看起来像这样:
[1 vim .tmux.conf][2 bash]...
Run Code Online (Sandbox Code Playgroud)
I窗口编号的代表.在W看台上为当前应用程序正在运行和T待机的终端称号.后来我们用来显示当前文件在vim中打开.终端标题始终设置(我的bash终端始终显示我不需要在状态栏描述中看到的主机名),因此仅在vim运行时显示它,将以下内容添加到您的.bashrc:
PROMPT_COMMAND='echo -ne "\033]0;\007"'
Run Code Online (Sandbox Code Playgroud)
对于bash,我使用的shell也是如此.PROMPT_COMMAND在终端中显示提示之前进行评估.echo命令将终端标题设置为空.因此,每当您从可能已更改标题的应用程序返回提示时,就会发生此操作.其他shell可能需要以不同方式配置......
tmux rename-window只要窗口存在,我就不会使用它来设置标题.您需要为每次应用程序启动调用它.所提出的方法使事物保持动态,因为它适用于窗口中的多个窗格以及在vim内打开的多个分屏/文件.
并在 Vim 退出时恢复自动窗口标题:
autocmd VimLeave * call system("tmux setw automatic-rename")
Run Code Online (Sandbox Code Playgroud)
我还建议检查我们是否在 tmux 下运行:
if exists('$TMUX')
autocmd BufEnter * call system("tmux rename-window '" . expand("%:t") . "'")
autocmd VimLeave * call system("tmux setw automatic-rename")
endif
Run Code Online (Sandbox Code Playgroud)
感谢很棒的输入,它为我节省了很多打字:-)
我将之前的两个答案合并为一个,我喜欢.
autocmd BufEnter * call system("tmux rename-window " . expand("%:t"))
autocmd VimLeave * call system("tmux rename-window bash")
autocmd BufEnter * let &titlestring = ' ' . expand("%:t")
set title
Run Code Online (Sandbox Code Playgroud)
第一个和sedond线用于tmux,第三个和第四个用于正常终端使用.您不必重新启动tmux,因为它是vim,可以显式更新tmux.
| 归档时间: |
|
| 查看次数: |
7743 次 |
| 最近记录: |