Aufteilen einer einzelnen Datei in mehrere Fenster in Vim

1377
w17t

Ist es möglich, einen Teil der Datei als separates vertikales Split-Fenster in Vim zu öffnen?

Angenommen, ich habe eine Datei mit hundert Zeilen, und von den vierzigsten bis einschließlich sechzigsten Zeilen möchte ich als getrenntes Fenster innerhalb des Hauptfensters als geteilter "Tab" gerendert werden, um sich besser auf diesen Teil der Datei zu konzentrieren, und Die Änderungen, die ich dort vorgenommen habe, wirken sich auch auf die gesamte Datei im Hauptfenster aus.

Ich habe eine sehr lange Datei und ich möchte so etwas implementieren, um den Inhalt besser zu verwalten.

0
Diese Frage hat mich wirklich gestört, also habe ich folgendes gefunden: https://github.com/chrisbra/NrrwRgn Ilker Mutlu vor 7 Jahren 0

3 Antworten auf die Frage

2
Veen

Wie bereits erwähnt, können Sie Splits mit demselben Puffer verwenden, um den besten Weg dorthin zu bringen.

:vsplit 

oder

:split 

Bei der Anzeige nur eines bestimmten Abschnitts der Datei besteht eine Möglichkeit darin, die Teile zu falten, die Sie nicht interessieren. Es gibt verschiedene Möglichkeiten, beliebige Teile der Dateien zu falten.

Am einfachsten ist es, die Zeilen auszuwählen, die im visuellen Modus nicht angezeigt werden sollen, und die zfZuordnung mithilfe der Zuordnung zu falten.

Sie können auch Markierungen zum Falten verwenden, sodass Sie eine Markierung direkt über dem Text platzieren möchten, den Sie sehen möchten, zum oberen Rand der Datei springen und dann bis zu dieser Marke falten. Dies würde etwa so aussehen:

ma gg zf'a 

Die Faltung erfolgt pro Fenster (Split), sodass sich die Falten in einem Fenster nicht auf andere Fenster auswirken, selbst wenn in jedem derselbe Puffer angezeigt wird.

Wenn Sie Probleme beim Erstellen der Falze haben, setzen Sie die Falzmethode auf manuell:

:set foldmethod=manual 
1
DJMcMayhem

Dies ist eigentlich ziemlich unkompliziert und benötigt zum Glück keine Konfiguration. Sobald Sie Ihre Datei geöffnet haben, führen Sie sie aus

:vsplit 

oder die Tastenkombination

<C-w>v 

das tut das Gleiche. Dadurch wird ein weiteres Fenster in denselben Puffer eingefügt. Das Schöne daran ist, dass jede Änderung, die Sie in einem Split vornehmen, automatisch auf einen anderen Split angewendet wird. Sie müssen nicht einmal sparen!

Der Grund dafür ist, dass Sie nur einen Puffer haben, nur mehrere Ansichten in denselben Puffer.

Du kannst es auch tun

:split 

oder

<C-w>n 

Das funktioniert genauso, aber mit einer horizontalen Spaltung.

Dieser allgemeine Ansatz kann dann auf eine beliebige Anzahl von Puffern, Aufteilungen und Registerkarten erweitert werden.

Das ist großartig, ich danke Ihnen für die Verknüpfung und es ist schön, dass sich die Änderungen sofort in beiden Fenstern niederschlagen. Was das Sperren bestimmter Zeilen angeht, möchte ich nicht, dass die gesamte Datei angezeigt wird, sondern nur ein Teil, einige Zeilen davon. w17t vor 7 Jahren 0
0
Ilker Mutlu

Lesen Sie die folgenden Informationen, bevor Sie sorgfältig lesen und erkennen, dass die Änderungen, die Sie in der neuen Aufteilung vornehmen, in der Originaldatei angezeigt werden sollen. Was meine Antwort ziemlich überflüssig macht. Lass das hier immer noch, falls es für jeden nützlich ist.


Inspiriert von diesem: http://vim.1045645.n5.nabble.com/How-to-read-specific-lines-from-a-file-into-current-buffer-td1180012.html

Nehmen wir an, Sie haben ~/.vimrcoffen,

Sie können zuerst eine neue Datei in einem Split öffnen :vsp file

dann

:r! sed -n '22,25p;26q' ~/.vimrc

Zeilen 22 bis 25 auf file

Ich bin mir sicher, dass das Skript erstellt und überarbeitet werden konnte. Ich werde die Möglichkeiten prüfen, wenn ich etwas Zeit habe.