Guias fixas no Vim?

0

Existe alguma maneira de fazer algo semelhante ao fixar uma guia do navegador com as guias do Vim? ou seja:

  • Corrigir posição à esquerda
  • Minimize seu tamanho
  • Impedir que seja fechado
por mahemoff 28.08.2014 / 23:08

2 respostas

0

Não, não existe, mas você pode criar algo para esse efeito.

Para reproduzir com mais fidelidade o comportamento das guias fixas dos navegadores da Web, você deve substituir todos os comandos relacionados à guia (como gt e :tabnext ) por mapeamentos personalizados e comandos personalizados (possivelmente usando cmdalias.vim - Crie aliases para os comandos do Vim para substituir os comandos Ex originais em minúsculas). Mas isso é bastante complicado, e ainda não cobriria qualquer modificação de tabulação feita em meus outros mapeamentos ou plugins.

Como alternativa, você pode periodicamente (por exemplo, ao alternar janelas) registrar o layout de todas as guias (ou seja, quais buffers elas contêm) e usá-las para restaurar facilmente uma guia fechada acidentalmente (se essa for sua principal preocupação). Afinal, os buffers ainda estão disponíveis no Vim após o fechamento de uma guia.

Resumo

Embora não exista nenhum recurso correspondente fácil e simples no Vim, se você analisar profundamente qual é o seu verdadeiro caso de uso subjacente, uma solução pode ser encontrada. Note que, aos olhos de muitos usos do Vim, o uso extensivo de guias não é recomendado. Eu pessoalmente uso apenas alguns de cada vez para segregar diferentes projetos / espaços de trabalho dentro de uma instância do Vim.

    
por 29.08.2014 / 09:46
1

Você pode usar uma configuração personalizada de 'tabline' para definir o tamanho / conteúdo de qualquer um dos rótulos da guia. Isso permitiria minimizar o tamanho.

O Vim nunca move as guias por conta própria, portanto, apenas um :tabmove 0 deve colocá-lo à esquerda. Se desejar, em um TabEnter autocmd, você poderá verificar se há guias especiais à direita da guia e, se essa guia não for especial, mova-a para a direita até que não haja mais especiais. Marcar guias especiais com uma variável t: escopo, por exemplo :let t:pinned=1 .

Eu não acho que haja uma maneira de impedir que ele seja fechado, no entanto, você pode usar comandos como :tabdo if !exists('t:pinned') | tabclose | endif para fechar todas as guias desafectadas.

    
por 31.08.2014 / 00:21

Tags