2014-03-12 6 views
6

Ich liebe vim, aber einer meiner Probleme mit ihm ist, dass, wenn ich x oder d Text zu entfernen, kopiert es die gelöschten Text in den Puffer/die Zwischenablage.VIM: Gibt es eine Möglichkeit vim nicht kopieren zu machen, wenn Sie Text löschen

Genauer gesagt, es ist ein Problem, wenn ich etwas Text kopiert habe, und dann muss ich einen zweiten Textblock löschen, bevor Sie den ersten Text einfügen.

Gibt es einen Befehl, der Text löscht, aber nicht kopiert? Wenn nicht, gibt es dafür einen benutzerdefinierten Befehl?

Danke!

+1

könnte es sein, aber warum sollten Sie das wollen? Ich finde es sehr praktisch, dass gelöschte Gegenstände in den Puffer verschoben werden (ich habe ddp unzählige Male in meinem Leben getroffen) – acushner

+1

@acushner gibt es ein paar Mal, wo ich etwas kopieren und dorthin gehen würde, wo ich es einfügen möchte und es gibt etwas in der Art, das gelöscht werden muss. Ich verstehe, dass Sie markieren können, was Sie löschen und einfügen möchten, aber was wäre, wenn es ein paar Dinge gibt, die nicht zusammen gelöscht werden müssen? Sie müssen zuerst überall einfügen, was auf der Zwischenablage ist, und löschen Sie dann jedes Stück von dem, was Sie wollen, und kopieren Sie es erneut, um es einzufügen. – 13ruce1337

+0

@acushner Ich stimme zu, dass es nett sein kann, aber "u" (rückgängig machen) dient diesem Zweck, wenn Sie versehentlich gelöscht, oder "yyp" zum Kopieren und Einfügen. Insbesondere ist es ärgerlich, wenn ich etwas Text kopiert habe, und dann muss ich einen anderen Textblock löschen, bevor Sie den ersten Text einfügen. Danke für die Frage, ich werde meine Frage klären:) –

Antwort

8

Verwenden black hole register

"_d 

Richten Sie Ihr eigenes Mapping in vimrc wie ,d einig Eingabe

4

Es gibt mehr als eine Weise zu speichern, um das Problem zu lösen. Einer davon wurde bereits von Vimsha vorgeschlagen.

Eine andere Möglichkeit, das Problem zu lösen, besteht darin, Ihren wichtigen Text in ein benanntes Register zu kopieren. Angenommen, Sie möchten 5 Textzeilen von einem Ort löschen und an anderer Stelle kopieren.

"a5dd löscht 5 Zeilen Text und speichert sie im a Register.

Verschiedene andere Operationen ausführen.

Wechseln Sie nun zu dem Speicherort, an dem Sie sie kopieren möchten.

"ap oder "aP wird die 5 Zeilen Text aus dem a Register an den aktuellen Speicherort kopieren.

Verwandte Themen