如何在GVIM中显示标签关闭按钮?

imb*_*hie 8 vim tabs warnings button tabpage

请告诉我如何在GVIM的每个标签页上显示关闭按钮.

此外,如果我打开多个标签页关闭GVIM,是否可以设置警告?

Pet*_*ker 42

简答

有效使用缓冲!

答案很长

您可以考虑使用:tabclose关闭标签.这有利于关闭选项卡(并让您远离鼠标),但也足够烦人,以促使工作流程转换为使用缓冲区和拆分.关于关闭带有多个窗口的选项卡的警告,如果你'hidden'设置了缓冲区仍然存在那么我没有看到任何好处.如果没有'hidden'任何修改的缓冲区,将在关闭之前提示.

为什么不选项卡

标签页很棒.然而,这一切都归结为vim将标签页面视为一组窗口或工作区中的更多视口.标签页不能很好地扩展.只需打开一些其他GUI编辑器并打开20个左右的选项卡.处理变得棘手.我打开了超过100个缓冲区并在它们之间切换而不用担心.缓冲区只是以标签没有的方式缩放.缓冲器和分离器也适用于较小的窗口,这通常是使用终端时的情况.

不要只听我的话.以下是一些更多支持信息:

快速缓冲提示和技巧

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

有关更多信息,请参阅

:h :sb
:h windows
:h 'hidden'
:h 'swb'
:h ctrl-6
:h ctrl-o
:h tags
:h cscope
:h tab-page-commands
Run Code Online (Sandbox Code Playgroud)


Ing*_*kat 8

显示关闭按钮

'tabline'选项可以包含%X关闭选项卡按钮的标记,但这仅适用于选项卡行的控制台版本.:help 'guitablabel'明确说明:

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

因此,要真正得到你想要的东西,你必须切换到(丑陋的)基于文本的标签行

:set guioptions-=e
Run Code Online (Sandbox Code Playgroud)

但请注意,在Vim中不鼓励使用鼠标(即使您可以通过Web浏览器选项卡等其他应用程序对其进行自定义).如果您在鼠标右键上单击GUI选项卡标签,您也可以|Close tab|从弹出菜单中进行选择.

防止标签关闭

(请注意,在这里提出多个问题是不赞成的;请单独询问.)

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

如果您担心丢失窗口/标签布局,请查看Vim会话(可以在后台自动保留).这将允许使用先前打开的窗口重新启动Vim.