Como posso manter uma lista de buffers por janela no Vim?

15

Estou surpreso por não ter conseguido encontrar uma resposta para isso, mas talvez esteja faltando algo óbvio: é possível manter uma lista de buffers por janela ? Muitas vezes tenho cerca de 4 divisões, e cada uma normalmente serve a um propósito específico: CSS em um, JS em outro, HTML em alguns outros, etc.

O que eu provavelmente estou procurando é um plugin que faça isso. Ultimamente tenho usado o BufExplorer, que possui uma configuração que permite manter sua lista de buffers por aba, mas não por janela.

Eu realmente gosto da lista de MRUs que o BufExplorer tem, mas acho irritante que seja baseado em minha lista global de buffers - o que eu quero é um histórico de MRU por janela.

    
por Brent Dillingham 09.08.2011 / 17:37

5 respostas

1

IMHO, o que você realmente precisa é de um gerente de espaço de trabalho.

você pode encontrar um para o vim @ link

Ele fornecerá os seguintes comandos:

:WsAddFile              Add a new file to the workspace.                  
:WsAddGroup             Add a new group to the workspace.                 
:WsClose                Close the workspace window.                       
:WsInsertFile           Insert a file.                                    
:WsInsertGroup  Insert a group.                                           
:WsOpen         Open a workspace and display it in a window.              
:WsRun          Run a command using the selected unquoted file names.     
:WsRunq         Run a command using the selected quoted file names.       
:WsSave         Save the workspace.                                       
:WsSessionOpen  Open the workspace and Vim session.                       
:WsSessionSave  Save the workspace and the Vim session.                   
:WsToggle               Open or Close the workspace window. 

Eu tenho uma captura de tela de trabalhar com o Gerenciador de Espaço de Trabalho com 4 ou mais janelas postadas no meu fb , você pode visualizá-lo lá (que é público).

Não é exatamente uma lista de buffers como você queria, mas você pode abrir arquivos em janelas diferentes e em vários buffers na mesma janela.

No último caso, o gerenciador do espaço de trabalho servirá como uma lista de buffer. Como você pode ver na captura de tela, agrupamos os arquivos em grupos diferentes.

Isso é o mais próximo possível do que você pode obter, AFIK.

Bom dia.

    
por 13.05.2012 / 06:33
0

Por que calçar esse nível de gerenciamento de janelas no vim? Ocasionalmente, uso janelas divididas - tenho o Ctrl-F mapeado para um comando grep no estilo find-in-files que aparece em uma janela dividida e também uso o vimdiff de vez em quando.

Mas você realmente quer o gerenciamento permanente de janelas no vim? O gerenciador de conexões PuTTY e todos os tipos de emuladores de terminal permitem que você divida os terminais da forma que desejar e, em seguida, execute sessões vim separadas em cada uma delas.

    
por 11.05.2012 / 21:25
0

tenha o NERDTree aberto à esquerda. >

I have several buffers open (only one visible in the main view... call it "buffer 1" )

I now go to NERDTree and select another file that I just want to look at really quick or copy something from. So I open that file from NERDTree and buffer1 is correctly hidden and I'm now looking at the buffer I just opened (call it buffer 2)

I now want to completely quit this buffer 2 and go back to editing buffer 1, but when I do :q on buffer 2 I end up looking at just one large NERDTree and I have to redisplay buffer1. ... [show rest of quote]

Eu não uso o Nerdtree, mas parece que você deveria estar digitando Ctrl- ^ (provavelmente Ctrl + tecla 6) para voltar ao buffer1.

    
por 15.05.2012 / 07:30
0

Não conheço esse plugin.

Uma maneira rápida de abrir um buffer de um arquivo específico é usar o comando FufBuffer do FuzzyFinder: Ele abrirá uma lista de todos os buffers abertos (exceto o da sua janela atual) para facilitar o acesso. Eu tenho o meu ligado a, fn. Isso me permitiria, por exemplo, ver rapidamente todos os arquivos css com, fncss ou todos os arquivos js com fnjs. O FuzzyFinder é ótimo para chegar ao arquivo / buffer / diretório / etc que você quer com o mínimo de esforço (não apenas neste caso de uso específico).

No entanto, eu suspeito que você esteja procurando algo que permita usar: bn e: bN (ou o que quer que você tenha mapeado para, não lembro se ctrl-n / p é padrão ou meu personalizado) para alternar entre seus buffers de um tipo de arquivo específico.

Talvez você possa criar um plug-in que forneça comandos para permitir alternar para os buffers anteriores / próximos do mesmo tipo que o arquivo do buffer atual na janela atual.

    
por 31.05.2012 / 07:43
-1

Esta não é uma resposta total, mas parece que o vim mantém # separados e% de buffers para cada janela. Então você pode alternar entre dois arquivos rapidamente em uma janela (usando CTRL- ^) e dois arquivos diferentes na outra janela. A lista de buffers ainda está com todos os buffers que você adicionou.

    
por 15.02.2017 / 16:33

Tags