Como mostrar o botão fechar no GVIM?

Por favor, deixe-me saber como mostrar o botão “Fechar” em cada ficha no GVIM.

Além disso, é possível definir um aviso se eu estiver fechando o GVIM com várias páginas guia abertas?

   

Mostrando o botão fechar

A opção 'tabline' pode include um marcador %X para o botão de tabulação fechada, mas isso só funciona para a versão de console da linha de tabulação. :help 'guitablabel' declara explicitamente:

Observe que o realce de syntax não é usado para a opção. Os itens% T e% X também são ignorados.

Então, para obter literalmente o que você quer, você precisa mudar para a linha de guia baseada em texto (mais feia) com

 :set guioptions-=e 

Mas observe que o uso do mouse (mesmo que você possa ser personalizado para isso por outros aplicativos como guias do navegador da Web) não é recomendado no Vim. Se você clicar com o botão direito do mouse em um label da guia GUI, também poderá escolher |Close tab| no menu pop-up.

Impedindo o fechamento da guia

(Observe que fazer várias perguntas é desaprovado aqui; por favor, pergunte-as separadamente.)

Eu não acho que isso seja possível; existe um evento VimLeavePre que você pode se conectar, mas não pode impedir o fechamento do Vim; a ação (por exemplo :qall! ) não pode ser desfeita. Se você está acostumado a fechar o Vim sempre por meio de um mapeamento ou comando, você pode sobrescrever isso e include um check lá (usando tabpagenr('$') > 1 ).

Se você está preocupado em perder seu layout de janela / guia, em vez disso, dê uma olhada nas sessões do Vim (que podem ser persistidas automaticamente em segundo plano). Isso permitirá relançar o Vim com as janelas abertas anteriormente.

Resposta curta

Use buffers de forma eficaz!

Resposta longa

Você pode considerar o uso :tabclose para fechar suas guias. Isso tem o benefício de fechar a aba (e mantê-lo longe do mouse), mas também é irritante o suficiente para motivar uma mudança de stream de trabalho para o uso de buffers e divisões. Quanto a um aviso sobre o fechamento de uma guia com várias janelas, vejo pouco benefício se você tiver 'hidden' conjunto 'hidden' , em seguida, os buffers ainda estão lá, sem danos. Se você não tiver 'hidden' qualquer um dos buffers modificados será solicitado antes de serem fechados.

Por que não abas

Páginas de guias são ótimas. No entanto, tudo se resume ao vim tratar páginas guia como mais portas de visualização em um grupo de janelas ou espaços de trabalho. Páginas de guias simplesmente não são bem dimensionadas. Basta abrir algum outro editor GUI e abrir 20 ou mais guias. Torna-se complicado lidar com isso. Eu tive mais de 100 buffers abertos e alternar entre eles sem se preocupar. Os buffers são dimensionados apenas de maneira que as guias não são dimensionadas. Buffers e splits também funcionam bem com janelas menores, o que é frequentemente o caso quando se usam terminais.

Não acredite apenas na minha palavra. Aqui estão mais algumas informações de suporte:

  • Drew Neil da Vimcast: Como usar abas
  • uso “adequado” de buffers
  • Dê uma olhada no Bram Moolenaar: sete hábitos de edição de texto eficaz
  • No stackoverflow: Usando as abas do Vim como buffers
  • Buffers, janelas e guias

Dicas e truques de buffer rápido

  • set hidden irá esconder buffers quando abandonado.
  • Use :sb para mudar para um buffer que você já abriu.
  • :sb e :b ambos podem pegar nomes parciais e globs. eg :sb foo*
  • Dê uma olhada no 'switchbuf' e mude para as suas preferências.
  • Aprenda a amar :sp :new e todos os tipos de comandos de divisão.
  • Aprenda alguns comandos para facilitar sua vida com divisões.
  • Use marcas de letras maiúsculas para voltar aos buffers onde você sabe que vai voltar.
  • Use tags para pular para as definições.
  • Possivelmente use cscope junto com tags
  • Use para mudar para o arquivo editado anteriormente.
  • Use e para mover posições mais antigas / mais recentes na sua lista de atalhos.
  • Possivelmente, use um dos muitos plugins de buffer lá fora. por exemplo, CtrlP

Para mais informações, veja:

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

Se você precisar disso, provavelmente está fazendo errado. Você não precisa de mouse com vim.

Mas que tal

 nnoremap  :tabclose 

Outros, em seguida, que ver TabLineSet.vim: A personalização de tabline Vim7 que tem

fechadores: adicione pontos de access (“!”) à guia de clique para fechar