Drucken mit Vim

Um überhaupt Drucken zu können, muß Vim mit dem "+printer"-feature kompiliert worden sein.
Da er aber auf den meisten Systemen vorinstalliert ist, ist diese Hürde schon genommen ;)
Die einfachste Variante ist das Kommando :ha (oder ausgeschrieben :hardcopy ).
Dieses druckt die ganze Datei mit den Standardeinstellungen.
Um diese Standardeinstellungen dauerhaft zu ändern, kann das Kommando 'set printoptions' mit diversen Parametern in die Datei .vimrc geschrieben werden.
Sollen die Änderungen nicht dauerhaft geändert werden, sondern nur für die aktuelle Sitzung gelten, kann man ':set printoptions' im Command-mode anwenden.
Die Schreibweise für 'set printoptions' ist folgende:
set printoptions=paper:A3,number:y
KOMMANDO = PARAMETER : WERT [, PARAMETER : WERT [...]]

Die Parameter im einzelnen:
Rand:
left:{spec} Linker Rand (default: 10pc)
right:{spec} Rechter Rand (default: 5pc)
top:{spec} Oberer Rand (default: 5pc)
bottom:{spec} Unterer Rand (default: 5pc)
{spec} ist eine Zahl, gefolgt von "in" für Inches, "pt" für Points (1 pt = 1/72 Inch), "mm" für Millimeter oder "pc" für Prozent der Mediagröße.
Header:
header:{nr} Anzahl Zeilen, die für den Header reserviert sind. Z.Z. wird immer nur die in die erste Zeile geschrieben (selbst wenn {nr} 2 ist - dann bleibt die zweite Zeile leer).
Der Header wird so formatiert, wie er bei 'printheader' angegeben wurde.
header:0 Keinen Header drucken.
header:2 Reserviert 2 Zeilen für den Header. (default)
Syntax Highlighting:
syntax:n Kein Syntax Highlighting
syntax:y Syntax Highlighting.
syntax:a Benutzt Syntax Highlighting, wenn der Drucker in Farbe oder Graustufen drucken kann. (default)
Zeilennummern
number:y Zeilennummern mitdrucken.
number:n Zeilennummern nicht drucken. (default)
Zeilenumbruch:
wrap:y Lange Zeilen umbrechen. (default)
wrap:n Lange Zeilen nicht umbrechen, sondern abschneiden.
Duplexdruck:
duplex:off Einseitig drucken.
duplex:long Druckt beidseitig (wenn möglich), an der langen Seite gebunden. (default)
duplex:short Druckt beidseitig (wenn möglich), an der kurzen Seite gebunden.
Sortierung:
collate:y Sortierung: 1 2 3, 1 2 3, 1 2 3 (default)
collate:n Keine Sortierung: 1 1 1, 2 2 2, 3 3 3
Aufteilung:
jobsplit:n Druckt alle Kopien in einem Job (default)
jobsplit:y Druckt jede Kopie als eigenen Job.

Ausrichtung:
portrait:y Ausrichtung ist Längsformat. (default)
portrait:n Ausrichtung ist Querformat.
Papierformat:
paper:A4 (default) Papierformat: A4
paper:{name} Papierformat aus Tabelle:
 
{name} Größe in mm ~
10x14 254,0 x 355,6
A3 297,0 x 420,0
A4 210,0 x 297,0
A5 148,0 x 210,0
B4 250,0 x 353,0
B5 176,0 x 250,0
executive 184,2 x 266,7
folio 210,3 x 330,2
ledger 431,8 x 279,4
legal 215,9 x 355,6
letter 215,9 x 279,4
quarto 203,2 x 254,0
statement 139,7 x 215,9
tabloid 279,4 x 431,8
Beispiel:
:set printoptions=paper:A3,syntax:y
Setzt das Papierformat aus A3 und schaltet Syntax Highlighting ein
Bestimmte Bereiche drucken:
Mit :ha oder :hardcopy lässt sich also die ganze Datei drucken.
Wie ist es aber, wenn ich nur einen bestimmten Bereich auf dem Drucker ausgeben möchte?
Hier bieten sich dem Benutzer mehrere Möglichkeiten, je nach dem was bzw. welcher Bereich gedruckt werden soll.
Zeile X - Y drucken Um sich ein paar Zeilen ausdrucken zu lassen, genügt die Angabe der Start- und der Endzeilennummer vor dem Druckbefehl:
:7,15ha oder :7,15hardcopy.
Schon bekommt man Zeile 7 bis 15 ausgedruckt.
Alles ab Zeile 20 drucken Wenn man das ganze Dokument ab 20 ausgedruckt haben möchte, bedient man sich dieses Druckbefehls:
:20,$ha oder :20,$hardcopy.
Das $-Zeichen heisst soviel wie "letzte Zeile".
Aktuelle Zeile drucken Will man nur mal schnell die aktuelle Zeile (Cursor) ausdrucken, genügt das Kommando
:.ha oder :.hardcopy. Der Punkt steht also für die aktuelle Zeile.
Zeilen vor oder nach der aktuellen Zeile drucken Um bestimmte Zeilen vor oder nach der aktuellen Zeile zu drucken, kann man den Plus bzw. Minus-Operator verwenden.
Soll zum Beispiel die dritte Zeile nach der aktuellen Zeile gedruckt werden, verwendet man das Kommando :.+3ha.
Um von der 5. Zeile vor ,bis zur 7. Zeile nach der Cursorposition zu drucken gibt man :.-5,.+7ha ein.
Zeilen mit Suchbegriff drucken Um sich eine Zeile drucken zu lassen, die den letzten Suchbegriff (/suchbegriff) enthält, werden die Kommandos
:\/ha bzw. :?/ha angewandt.
:\/ha druckt die letzte Zeile vor den Cursor, die den Suchbegriff enthält, :?/ha die nächste Zeile ab Cursorposition, die den Suchbegriff enthält.

Kommentare, Anregungen und Kritik...
...sind jederzeit willkommen! Schreibt mir einfach - Kontaktdaten im Impressum! ;-)