如何在GVIM中显示选项卡closuresbutton?

请让我知道如何显示GVIM中每个标签页上的closuresbutton。

另外,如果我打开多个标签页closuresGVIM,是否可以设置警告?

显示closuresbutton

'tabline'选项可以包含closures选项卡button的%X标记,但仅适用于选项卡行的控制台版本。 :help 'guitablabel'明确指出:

请注意,语法突出显示不用于该选项。 %T和%X项目也被忽略。

所以,为了从字面上得到你想要的,你必须切换到(丑陋的)基于文本的标签行

 :set guioptions-=e 

但是请注意,在Vim中,使用鼠标(即使可以通过其他应用程序(如Web浏览器选项卡)进行定制)也是不受欢迎的。 如果用鼠标右键单击GUI选项卡标签,也可以select|Close tab| 从popup菜单。

防止选项卡closures

(请注意,在这里提出多个问题,请分开提问。)

我不认为这是可能的。 有一个VimLeavePre事件,你可以挂钩,但它不能阻止Vim的closures; 行动(例如:qall! )不能撤消。 如果您习惯通过映射或命令closuresVim,您可以覆盖它并在其中包含一个检查(使用tabpagenr('$') > 1 )。

如果你担心失去你的窗口/标签布局,而是看看Vim会话 (可以在后台自动保存)。 这将允许以前打开的窗口重新启动Vim。

简答

有效使用缓冲区!

长答案

你可以考虑使用:tabcloseclosures你的标签。 这有利于closures选项卡(并使您远离鼠标),但也只是令人讨厌,可以激发工作stream程转换为使用缓冲区和分割。 至于closuresclosures多个窗口的选项卡的警告,我看不到有什么好处,如果你有'hidden'设置然后缓冲区仍然在那里没有伤害。 如果您没有'hidden' ,则在closures之前,将会提示修改后的缓冲区。

为什么不select标签

标签页是伟大的。 然而,这一切都归结为VIM把标签页视为更多的视图端口到一组窗口或工作区。 标签页面不能很好地缩放。 只需打开一些其他的GUI编辑器,打开20个左右的选项卡。 处理起来很棘手。 我已经打开了100多个缓冲区并在它们之间切换而不用担心。 缓冲区的大小只是标签所没有的。 当使用terminal时,缓冲区和分割也适用于较小的窗口。

不要只听我的话 这里有一些更多的支持信息:

  • Vimcast的Drew Neil: 如何使用制表符
  • “正确”使用缓冲区
  • 看看Bram Moolenaar: 有效的文本编辑video的七种习惯
  • 在stackoverflow: 使用Vim的标签,如缓冲区
  • 缓冲区,窗口和选项卡

快速缓冲提示和技巧

  • set hidden会在放弃时隐藏缓冲区。
  • 使用:sb切换到您已经打开的缓冲区。
  • :sb:b都可以采取部分名称和globs。 例如:sb foo*
  • 看看'switchbuf'并改变你的喜好。
  • 学会爱:sp:new ,以及所有types的split命令。
  • 学习一些<cw>命令让你的生活更轻松。
  • 使用大写字母标记跳回到知道跳回的缓冲区。
  • 使用标签跳转到定义。
  • 可能与标签一起使用cscope
  • 使用<c-6>切换到以前编辑的文件。
  • 使用<co><ci>移动跳转列表中较旧/较新的位置。
  • 有可能使用其中的一个缓冲区插件。 例如CtrlP

有关更多信息,请参阅

 :h :sb :h windows :h 'hidden' :h 'swb' :h ctrl-6 :h ctrl-o :h tags :h cscope :h tab-page-commands 

如果你需要这个,你可能做错了。 vim不需要鼠标。

但是怎么样

 nnoremap <MiddleMouse> :tabclose<CR> 

除此之外,看到TabLineSet.vim:一个Vim7标签自定义其中

closures程序:向标签中添加热点(“!”)以进行点击closures