Das Narrow Region Plugin habe ich aufgrund einer
Diskussion im Usenet geschrieben.
Narrowing kommt vom Emacs und bedeutet, sich auf eine bestimmte Region zu konzentrieren und den Rest des Buffers unverändert zu lassen. So lassen sich auch größere Änderungen an einer Stelle durchführen (z.B. eine Funktion umschreiben, und den Rest der Datei geschützt lassen).
Man selektiert eine Region (Zeilen oder Blöcke) und dann tippt man ein
:NR und es öffnet sich ein neues Fenster, in dem die ausgewählte Region enthalten ist.
Das Originalfenster dagegen wird schreibgeschützt gesetzt, so dass man dort nicht versehentlich etwas ändert.
Wenn man mit dem Bearbeiten fertig ist, speichert man einfach die Änderungen (
:w) und schon werden sie in die Originaldatei übernommen.
Download
Das offizielle stabile Plugin gibt sich auf der vim.org Seite:
http://www.vim.org/scripts/script.php?script_id=3075Das Entwicklungs-Repo befindet sich bei Github:
https://github.com/chrisbra/NrrwRgnFeatures
Wenn das Plugin installiert ist, sind die folgenden Kommandos verfügbar:
:NRDie gewählte Region auswählen und in einem neuen Fenster öffnen. Wenn keine Region selektiert ist, wird die aktuelle Zeile ausgewählt.
:NWDie Region, die im aktuellen Fenster sichtbar ist auswählen und in einem neuen Fenster öffnen.
:NRVDie zuletzt ausgewählte Region neu auswählen und in einem neuen Fenster öffnen.
:NUDWenn man Patche im Unified Diff Format ansieht, kann man den aktuellen Chunk in einem Diff-Modus öffnen.
:NRPMarkiert bestimmte Regionen, die dann später mittels
:NRM ausgewählt werden können.
:NRMAlle durch
:NRP selektierten Regionen in einem neuen Fenster öffnen. So kann man z.B. in einer Konfigurationsdatei alle Zeilen kommentieren, die keine Kommentare sind und nur den Inhalt bearbeiten. Beim Zurückschreiben bleiben die Kommentare erhalten:
:v/^#/NRP :NRP:NRSBeim Schreiben den Inhalt des Narrowed Windows in die Ursprungsdatei zurückschreiben (normales Narrowing).
:NRNNarrowing deaktivieren. Fensterinhalt kann wie eine Datei überall hin geschrieben werden.
:WidenRegionDen Inhalt des selektierten Buffers in die ursprüngliche Datei zurückschreiben. Alternativ kann man auch mit
:w den Inhalt zurückschreiben.
Für die ausführliche Beschreibung der Kommandos, sei auf die beiliegende Hilfedatei verwiesen, die mittels
:h NarrowRegion erreichbar ist (siehe auch unten für die Online Hilfe).
Konfiguration
Es existieren verschiedene Variablen, mit denen man das Plugin konfigurieren kann.
Vertikales Fenster
Wenn man ein vertikales Fenster öffnen möchte, setzt man die Veriable
g:nrrw_rgn_vert Breite/Höhe des FenstersMittels der Variable
g:nrrw_rgn_wdth kann man die gewünschte Höhe/Breite des Narrow Fensters definieren.
Highlighting der selektierten RegionPer default wird mit WildMenu Highlighting die Region im originalen Fenster markiert, die gerade in einem anderen Fenster geöffnet wurde. Eine anderes Highlighting kann man mit
g:nrrw_rgn_hl definieren. Möchte man das Highlighting komplett abschalten, setzt man die Variable
g:nrrw_rgn_nohl Spezielle Optionen im neuen FensterMan kann angeben, dass bestimmte Optionen im sich öffnenden Fenster gesetzt werden. Z.B. möchte man in einer PHP Datei den HTML Teil in einem extra Fenster bearbeiten und dort soll natürlich der Dateityp auf HTML gesetzt werden. Dafür existiert die Variable
g:nrrw_custom_options, z.B:
:let g:nrrw_custom_options = {}:let g:nrrw_custom_options['filetype'] = 'html'Das Fenster unten bzw. rechts öffnenNormalerweise öffnet sich das Fenster horizontal über dem aktuellen Buffer. Wer das nicht möchte, setzt die Variable
g:nrrw_topbot_leftright.
Hilfe
ausführliche Hilfe gibt es
hier.
Bugtracking
Bugs/Probleme können
hier gemeldet werden.
TL;DR
Mit dem Plugin NrrwRgn ist es sehr einfach möglich, bestimmte Bereiche einer Datei zu selektieren und sich nur auf einen Teilbereich zu konzentrieren. Dabei ist es sogar möglich, Narrowed Fenster ebenfalls in einem neuen eigenen Narrowed Fenster zu öffnen.
Die umfangreichen Optionen erlauben eine einfache Konfiguration des Plugins.