vim-tpipeline

vim-tpipeline

Vim状态栏嵌入Tmux 提升屏幕空间效率

vim-tpipeline是一款将Vim状态栏嵌入Tmux状态栏的插件。它优化了屏幕空间利用,保留了原有Vim配置,并支持所有状态栏样式。该插件兼容其他状态栏插件,提供灵活配置,通过异步更新和自动颜色转换保证了使用体验和视觉效果。vim-tpipeline适用于追求效率的开发者,为Vim和Tmux用户提供了一种整合两者界面的解决方案。

vim-tpipelinetmuxvim状态栏插件Github开源项目

vim-tpipeline

在tmux状态栏中嵌入你的vim状态栏!

截图

安装

使用 vim-plug

Plug 'vimpostor/vim-tpipeline'

强烈建议在你的 ~/.tmux.conf 中添加以下内容:

set -g focus-events on set -g status-style bg=default set -g status-left-length 90 set -g status-right-length 90 set -g status-justify centre

重启tmux后,你应该就能在tmux中看到你的vim状态栏了。

vim-tpipeline 兼容所有状态栏,可以与其他状态栏插件(如 lualine)一起使用。如果它不能与你的状态栏兼容,请提交bug报告。

要求

  • Vim 8.2.4650(或更高版本)或 Neovim 0.6(或更高版本)
  • 支持真彩色(在vim中设置 set termguicolors
  • 为获得最佳体验,请使用支持焦点事件的终端(已知良好的终端有 weztermkonsoleiTerm2

配置

此插件会自动以合理的默认设置将你的状态栏嵌入tmux。 如果你想更精确地控制它的位置,可以禁用自动配置(使用 g:tpipeline_autoembed),然后手动嵌入状态栏,以下是一个示例:

" .vimrc " 你也可以使用Lua进行配置,参见 :h lua-vim-variables 获取帮助 let g:tpipeline_autoembed = 0
# .tmux.conf set -g focus-events on set -g status-style bg=default set -g status-left '#(cat #{socket_path}-\#{session_id}-vimbridge)' set -g status-left-length 90 set -g status-right '#(cat #{socket_path}-\#{session_id}-vimbridge-R)' set -g status-right-length 90 set -g status-justify centre

默认情况下,vim-tpipeline 会复制你标准的vim statusline。 如果你想为tmux使用不同的状态栏,可以手动设置:

" tpipeline自带一个自定义的简约状态栏 let g:tpipeline_statusline = '%!tpipeline#stl#line()' " 你也可以使用标准的状态栏语法,参见 :help stl let g:tpipeline_statusline = '%f'

还有许多其他选项可用于适应每种特定用例。查看全面的帮助文件,使用 :help tpipeline-configure 了解更多信息。

常见问题

为什么要这样做?

通常,tmux状态栏中有大量空闲空间,因此如果你将vim状态栏放在那里,可以更好地利用空间。 毕竟,你不希望你精心制作的vim配置最终变成一个糟糕的Internet Explorer梗,对吧? 梗图

我可以在tmux之外也使用默认的 tpipeline状态栏 吗?

可以,在你的 ~/.vimrc 中使用 set stl=%!tpipeline#stl#line()。事实上,这个插件使用了 Vim 的自动加载机制来懒加载功能,即如果你不使用tmux,你仍然可以在vim中使用状态栏而不加载不必要的功能。

tmux中的焦点事件对我不起作用

除了在 tmux 配置中添加 set -g focus-events on,你还需要有可用的 XT 功能,你可以通过执行 tput XT 命令来测试。如果在tmux中没有这个功能,那么有三种方法可以解决这个问题

  • 在你的 tmux 配置中添加 set -g default-terminal "xterm-256color"
  • 通过在 .vimrc 中使用以下内容强制vim启用它:
let &t_fe = "\<Esc>[?1004h" let &t_fd = "\<Esc>[?1004l"
  • 基于 tmux-256color 编写你自己的自定义terminfo条目

如何停止居中窗口列表在切换窗格时闪烁?

从tmux 3.2版本开始,你可以使用 absolute-centre 代替 centre

-set -g status-justify centre +set -g status-justify absolute-centre

为什么我应该使用这个插件而不是 onestatus

  • onestatus 中,tmux状态栏的更新使用阻塞调用,而 tpipeline 使用非阻塞作业异步更新状态栏。
  • tpipeline 可以直接使用你当前的vim状态栏,而 onestatus 实际上并不使用你的状态栏,需要你配置它自己的状态栏。
  • 由于上述原因,onestatus 无法使用许多vim功能,如你的vim配色方案,需要你重新定义颜色。在 tpipeline 中,vim颜色会自动转换为tmux语法。
  • onestatus 中,显示当前模式或行号等简单功能需要编写自己的函数。在 tpipeline 中,这些功能开箱即用。

编辑推荐精选

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

下拉加载更多