DSIW

Alles was interessant ist... (Linux, Programmierung, Datenschutz, Medien, uvm.)

Kopieren mit vim

| Comments

Ich nutze nun verstärkt vim als Editor für alles. Ich kann diesen nur jedem empfehlen, der relativ oft in Quellcode arbeitet.

Irgendwann kam bei mir das Problem auf, dass ich etwas aus der Zwischenablage hineinkopieren wollte. Dies funktionierte allerdings nicht mittels [Strg]+[V] oder [Strg]+[Shift]+[v] im Einfüge-Modus. Wie man aus vim kopieren oder einfügen kann wird im nachfolgenden beschrieben.

Es gibt genau zwei Register (Speicher), die für die Zwischenablage zuständig sind. Das Register + ist die Ablage, wenn man die Tastenkombination [Strg]+[C] benutzt hatte. Wie manche von euch sicher kennen, ist das Kopieren über das Markieren und anschließendem Einfügen über die mittlere Maustaste möglich. Das Register dafür ist *.

Die allgemeinen Befehle lauten also folgendermaßen:

1
"<register><operation>

Beispiele

  • "+yy kopiert die aktuelle Zeile in das Register +, sodass ein Einfügen über [Strg]+[C] in einem anderen Programm möglich ist.
  • "+p fügt den Inhalt des Registers + unter oder hinter dem Curser ein.
  • "*y kopiert den markierten Bereich in das Register *. Anschließend ist ein Einfügen in einem Programm über die Tastenkombination möglich.
  • "*p fügt den Inhalt des Registers * unter oder hinter dem Curser ein.

Ich habe mir ein Map auf eine Tastenkombination gelegt, sodass der von mir vorher markierte Bereich in das Register + abgelegt wird. Ein weiteres Mapping fügt den Inhalt des gleichen Registers in vim ein.

Mappen

Die persönlichen Einstellungen werden normalerweise in der Datei ~/.vimrc im Heimatverzeichniss abgespeichert. Diese Datei öffnet man nun mit einem Editor -- ich empfehle natürlich code>vim. Man fügt nun den folgenden Code ein:

1
2
vmap <c-c> "+y
imap <c-v> "+p

Das Mappen geschieht durch das Wort map. Der Buchstabe v grenzt die Tastenfunktion auf den visuellen Modus ein. Das gleiche geschiet mein Einfügen im Einfüge-Mode. Danach werden die Tasten deklariert, die mit der Funktion/dem Makro verknüpft werden soll. steht für [Strg]+[C], analog dazu ist die Tastenkombination [Strg]+[V].

Um sich den ganzen Inhalter aller 30 Register ausgeben zu lassen, wird der Befehl :reg eingegeben.

Quelle: zinformatik.de

Comments