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 perdendo algo óbvio: é possível manter uma lista de buffers por janela ? Costumo ter cerca de 4 divisões, e cada uma normalmente serve a um propósito específico: CSS em uma, JS em outra, HTML em algumas outras, 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 guia, mas não por janela.

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


Você não pode encontrá-lo porque ainda não foi construído. Os vizinhos mais próximos são identificados nesta sessão de perguntas e respostas
New Alexandria

Respostas:


1

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

você pode encontrar um para vim @ http://www.vim.org/scripts/script.php?script_id=1410

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 do trabalho com o Gerenciador de espaço de trabalho com mais de 4 janelas postadas no meu fb , você pode vê-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 caso posterior, o gerenciador da área de trabalho servirá como uma lista de buffers. Como você pode ver na captura de tela, agrupei os arquivos em diferentes grupos.

É o mais próximo que você pode conseguir, AFIK.

Dia bom.


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 de localizar arquivos que aparece em uma janela dividida e também uso o vimdiff de vez em quando.

Mas você realmente deseja gerenciamento permanente de janelas no vim? O gerenciador de conexões PuTTY e todos os tipos de emuladores de terminal permitem dividir os terminais como desejar e, em seguida, executar sessões separadas do vim em cada um.


Você pode compartilhar registros entre instâncias do vim? Esta é sempre a minha razão número um para não querer várias instâncias do vim executando: não posso yankde uma e de putoutra.
brianmearns

0

deixe o NERDTree aberto à esquerda. >

Tenho vários buffers abertos (apenas um visível na visualização principal ... chame de "buffer 1")

Agora vou ao NERDTree e seleciono outro arquivo que eu só quero olhar muito rápido ou copiar algo. Então, eu abro esse arquivo do NERDTree e o buffer1 está oculto corretamente e agora estou olhando para o buffer que acabei de abrir (chame de buffer 2)

Agora, desejo encerrar completamente esse buffer 2 e voltar à edição do buffer 1, mas quando o faço: q no buffer 2 acabo olhando apenas para um NERDTree grande e preciso exibir novamente o buffer1. ... [mostra o restante da citação]

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


0

Não conheço esse plug-in.

Uma maneira rápida de abrir um buffer de um arquivo específico é usar o comando FuzzyFinder: FufBuffer. Ele abrirá uma lista de todos os buffers abertos (excluindo o da sua janela atual) para facilitar o acesso. Eu tenho o meu obrigado, 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 acessar o arquivo / buffer / diretório / etc que você deseja com o mínimo de esforço (não apenas neste caso de uso específico).

No entanto, suspeito que você esteja procurando por algo que permita que você use: bn e: bN (ou o que você tiver mapeado, não se lembra se ctrl-n / p é o padrão ou o meu costume) para alternar entre os buffers de um tipo de arquivo específico.

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


BTW, acho que gerenciar essas listas de buffers separadas seria mais doloroso do que alívio.
Hannes

-1

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


Este é realmente um comentário, mas ainda não posso comentar, por isso posto uma resposta que é rejeitada porque não responde à pergunta. Vai saber.
mondaugen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.