Come posso mantenere un elenco di buffer per finestra in Vim?


15

Sono sorpreso di non essere riuscito a trovare una risposta a questo, ma forse mi manca qualcosa di ovvio: è possibile mantenere un elenco di buffer per finestra ? Ho spesso circa 4 divisioni, e ognuna in genere ha uno scopo specifico: CSS in uno, JS in un altro, HTML in alcuni altri, ecc.

Quello che probabilmente sto cercando è un plugin che compia questo. Ultimamente sto usando BufExplorer, che ha un'impostazione che ti consente di mantenere il suo elenco di buffer per scheda, ma non per finestra.

Mi piace molto l'elenco MRU che BufExplorer ha, ma trovo fastidioso che sia basato sul mio elenco globale di buffer - quello che voglio è una cronologia MRU per finestra.


Non puoi trovarlo perché non è stato ancora costruito. La maggior parte dei vicini più vicini sono identificati in questa Domande e risposte
New Alexandria,

Risposte:


1

IMHO, quello di cui hai veramente bisogno è un manager dell'area di lavoro.

puoi trovarne uno per vim @ http://www.vim.org/scripts/script.php?script_id=1410

Ti fornirà i seguenti comandi:

: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. 

Ho una schermata di lavoro con Workspace Manager con 4+ finestre pubblicate sul mio fb , puoi vederlo lì (che è pubblico).

Non è esattamente un elenco di buffer come desiderato, ma è possibile aprire file in finestre diverse e in più buffer nella stessa finestra.

Nel caso successivo, il gestore dell'area di lavoro fungerà da elenco buffer. Come puoi vedere nello screenshot, ho raggruppato i file in diversi gruppi.

Questo è il più vicino possibile a ciò che puoi ottenere, AFIK.

Buona giornata.


0

Perché calzascarpe quel livello di gestione delle finestre in vim? Di tanto in tanto uso le finestre divise - ho Ctrl-F mappato su un comando grep di tipo find-in-files che appare in una finestra divisa, e uso anche vimdiff a volte.

Ma vuoi davvero la gestione permanente delle finestre in vim? La gestione connessione PuTTY e tutti i tipi di emulatori di terminale ti consentono di dividere i terminali come desideri e quindi eseguire sessioni vim separate in ciascuno.


Puoi condividere i registri tra istanze vim? Questa è sempre la mia ragione numero uno per non volere più istanze di VIM in esecuzione: non posso yankda una e putdall'altra.
brianmearns,

0

avere NERDTree aperto a sinistra. >

Ho diversi buffer aperti (solo uno visibile nella vista principale ... chiamalo "buffer 1")

Ora vado su NERDTree e seleziono un altro file che voglio solo guardare velocemente o copiare qualcosa. Quindi apro quel file da NERDTree e buffer1 è correttamente nascosto e ora sto guardando il buffer che ho appena aperto (chiamalo buffer 2)

Ora voglio chiudere completamente questo buffer 2 e tornare alla modifica del buffer 1, ma quando lo faccio: q sul buffer 2 finisco per guardare solo un NERDTree di grandi dimensioni e devo visualizzare nuovamente il buffer1. ... [mostra il resto della citazione]

Non uso Nerdtree, ma sembra che dovresti digitare Ctrl- ^ (probabilmente Ctrl + il tasto 6) per tornare a buffer1.


0

Non sono a conoscenza di un tale plugin.

Un modo rapido per aprire un buffer di un file specifico consiste nell'utilizzare il comando: FufBuffer di FuzzyFinder. Si aprirà un elenco di tutti i buffer aperti (escluso quello nella finestra corrente) per un facile accesso. Ho il mio legato, fn. Mi consentirebbe, ad esempio, di visualizzare rapidamente tutti i file CSS con, fncss o tutti i file js con, fnjs. FuzzyFinder è ottimo per arrivare a quel file / buffer / directory / etc che vuoi con il minimo sforzo (non solo questo particolare caso d'uso).

Tuttavia, sospetto che tu stia cercando qualcosa che ti permetta di usare: bn e: bN (o qualunque cosa tu abbia mappato, non ricordo se ctrl-n / p sono predefiniti o personalizzati) per passare da un buffer all'altro di un tipo di file specifico.

Forse, potresti creare un plugin che ti dà i comandi per consentire il passaggio ai buffer precedenti / successivi dello stesso tipo del file del buffer corrente nella finestra corrente.


A proposito, penso che gestire questi elenchi di buffer separati sarebbe più un dolore che un sollievo.
Hannes,

-1

Questa non è una risposta totale, ma sembra che vim mantenga buffer # e% separati per ogni finestra. Quindi puoi alternare rapidamente due file in una finestra (usando CTRL- ^) e due file diversi nell'altra finestra. L'elenco dei buffer è comunque tutti i buffer aggiunti.


Questo è davvero un commento, ma non posso ancora commentare, quindi inserisco una risposta che viene votata perché non risponde alla domanda. Vai a capire.
mondaugen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.