Wie kann ich in Vim eine Pufferliste pro Fenster führen?


15

Ich bin überrascht, dass ich keine Antwort darauf gefunden habe, aber vielleicht fehlt mir etwas Offensichtliches: Ist es möglich, eine Pufferliste pro Fenster zu führen ? Ich habe oft 4 Splits, und jeder dient normalerweise einem bestimmten Zweck: CSS in einem, JS in einem anderen, HTML in einigen anderen, usw.

Was ich wahrscheinlich suche, ist ein Plugin, das dies erreicht. In letzter Zeit habe ich BufExplorer verwendet, der eine Einstellung enthält, mit der Sie die Liste der Puffer pro Registerkarte, jedoch nicht pro Fenster, beibehalten können.

Ich mag die MRU-Auflistung, die BufExplorer hat, sehr, aber ich finde es ärgerlich, dass sie auf meiner globalen Pufferliste basiert - was ich will, ist eine MRU-Historie pro Fenster.


Sie können es nicht finden, weil es noch nicht gebaut wurde. Die am nächsten gelegenen Nachbarn werden in dieser
New Alexandria,

Antworten:


1

IMHO, was Sie wirklich brauchen, ist ein Work Space Manager.

Sie finden eine für vim unter http://www.vim.org/scripts/script.php?script_id=1410

Sie erhalten folgende Befehle:

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

Ich habe einen Screenshot von der Arbeit mit Workspace Manager mit mehr als 4 Fenstern, die auf meiner fb gepostet sind. Sie können ihn dort ansehen (was öffentlich ist).

Es ist nicht genau eine Liste von Puffern, wie Sie es wollten, aber Sie können Dateien in verschiedenen Fenstern und in mehreren Puffern in demselben Fenster öffnen.

Im späteren Fall dient der Arbeitsbereichsmanager als Pufferliste. Wie Sie im Screenshot sehen können, habe ich Dateien in verschiedene Gruppen gruppiert.

Das ist so nah wie möglich, AFIK.

Schönen Tag.


0

Warum diese Ebene der Fensterverwaltung in vim shoehorn? Ich verwende gelegentlich geteilte Fenster - ich habe Strg-F einem grep-Befehl im Stil "In Dateien suchen" zugeordnet, der in einem geteilten Fenster angezeigt wird, und ich verwende gelegentlich auch vimdiff.

Aber wollen Sie wirklich eine permanente Fensterverwaltung in vim? Mit PuTTY Connection Manager und allen Arten von Terminalemulatoren können Sie die Terminals nach Ihren Wünschen aufteilen und dann in jedem Termin separate vim-Sitzungen ausführen.


Können Sie Register zwischen vim-Instanzen teilen? Dies ist immer Grund meine Nummer eins für nicht mehrere Instanzen von vim Laufen zu wollen: Ich kann nicht yankvon einem und putin der anderen.
Brianmearns

0

Habe NERDTree auf der linken Seite geöffnet. >

Ich habe mehrere Puffer geöffnet (nur einer ist in der Hauptansicht sichtbar ... nenne es "Puffer 1")

Ich gehe jetzt zu NERDTree und wähle eine andere Datei aus, die ich mir nur ganz schnell ansehen oder kopieren möchte. Also öffne ich diese Datei aus NERDTree und buffer1 ist korrekt ausgeblendet und ich schaue jetzt auf den Puffer, den ich gerade geöffnet habe (nenne ihn buffer 2)

Ich möchte diesen Puffer 2 jetzt vollständig verlassen und zum Bearbeiten von Puffer 1 zurückkehren, aber wenn ich Folgendes tue: q auf Puffer 2, schaue ich mir nur einen großen NERDTree an und muss buffer1 erneut anzeigen. ... [Rest des Zitats anzeigen]

Ich verwende Nerdtree nicht, aber es hört sich so an, als ob Sie Strg- ^ (wahrscheinlich Strg + die 6-Taste) eingeben sollten, um zu buffer1 zurückzukehren.


0

Mir ist ein solches Plugin nicht bekannt.

Eine schnelle Möglichkeit, einen Puffer einer bestimmten Datei zu öffnen, ist die Verwendung des Befehls: FufBuffer von FuzzyFinder. Es wird eine Liste aller geöffneten Puffer (mit Ausnahme des Puffers in Ihrem aktuellen Fenster) für den einfachen Zugriff geöffnet. Ich bin verpflichtet, fn. Es würde mir zum Beispiel erlauben, schnell alle CSS-Dateien mit, fncss oder alle js-Dateien mit, fnjs zu sehen. FuzzyFinder ist ideal, um mit minimalem Aufwand (nicht nur in diesem speziellen Anwendungsfall) zu der gewünschten Datei / buffer / directory / etc zu gelangen.

Ich vermute jedoch, dass Sie nach etwas suchen, das es Ihnen ermöglicht: bn und: bN (oder was auch immer Sie zugeordnet haben, ich kann mich nicht erinnern, ob Strg-n / p Standard oder meine Gewohnheit sind), um zwischen Ihren Puffern von zu wechseln ein bestimmter Dateityp.

Möglicherweise könnten Sie ein Plugin erstellen, das Befehle zum Wechseln zu den vorherigen / nächsten Puffern des gleichen Typs wie die Datei des aktuellen Puffers im aktuellen Fenster enthält.


Übrigens, ich denke, das Verwalten dieser separaten Pufferlisten wäre eher ein Schmerz als eine Erleichterung.
Hannes

-1

Dies ist keine vollständige Antwort, aber es scheint, dass vim für jedes Fenster separate # - und% -Puffer hat. So können Sie schnell zwischen zwei Dateien in einem Fenster (mit STRG- ^) und zwei verschiedenen Dateien im anderen Fenster wechseln. Die Pufferliste enthält weiterhin alle Puffer, die Sie hinzugefügt haben.


Dies ist wirklich ein Kommentar, aber ich kann ihn noch nicht kommentieren. Deshalb poste ich eine Antwort, die abgelehnt wird, weil sie die Frage nicht beantwortet. Stelle dir das vor.
Mondaugen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.