2016-07-27 9 views
0

Grundsätzlich, ich brauche Ratschläge, wie die gegenüber von dem zu tun, was hier beschrieben wird:Wie vim Einfügen in/aus der Systemzwischenablage zu deaktivieren?

How to make vim paste from (and copy to) system's clipboard?

I nicht vim will Zwischenablage zu überschreiben, wenn ich etwas im Editor löschen. Der übliche Arbeitsablauf für mich ist, ein Stück Code (nennen wir es Stück Nr. 1) mit einer Maus auszuwählen, dann zu einem anderen Stück Code zu gehen (nennen wir es Stück Nr. 2), wählen Sie Stück Nr. 2 im visuellen Modus ein vim, lösche es mit "c" und füge Teil 1 mit der mittleren Maustaste ein. Mit dem neuen Verhalten, anstelle des Einfügens von Teil # 1, füge ich Teil 2 zurück.

In vim 7.2 kann ich das tun, aber in vim 7.4 kann ich nicht. Ich möchte 7.4 wegen richtiger C++ 11 Syntax Hervorhebung verwenden, aber dieses geänderte Standardverhalten bringt mich um.

Ich denke, es hat etwas mit dem zu tun hat "+ xterm_clipboard" und/oder "+ Zwischenablage" Features von Vim (vim --version), und ich brauche sie irgendwie ändern "-xterm_clipboard" und/oder "-Clipboard". Ich habe versucht, vim 7.4 mit der Option "--with-x = no" neu zu kompilieren, aber irgendwie hat es nicht geholfen.

Bitte helfen Sie mir, das Kopieren/Einfügen in vim standardmäßig in die Zwischenablage zu deaktivieren.

Vielen Dank!

+0

Sie haben zwei Möglichkeiten. Erstens, vermeiden Sie besser diese Zwischenablage registrieren.Zweitens, mappen Sie es oder setzen Sie es auf ein anderes Register. :) – SibiCoder

Antwort

1

Nun Ihnen auch von Nutzen sein, die Frage im Titel zu beantworten, können Sie einfach tun

:set clipboard= 

Welche machen vim verwendet sein internes Register anstelle des Systemregisters.

Aber wirklich, dieses Verhalten hat nichts mit der Systemzwischenablage zu tun. Es ist nur ein allgemeines Missverständnis von Vim-Registern.

Vim standardmäßig "schneidet" statt "löscht". Das bedeutet, dass jeder Löschbefehl (c und d) gleichzeitig in das unbenannte Register springt. Um dies zu umgehen, verwende einfach das schwarze Lochregister, z.B. Verwenden Sie "_c oder "_d statt nur c oder d.

9. Black hole register "_    *quote_* 
When writing to this register, nothing happens. This can be used to delete 
text without affecting the normal registers. When reading from this register, 
nothing is returned. {not in Vi} 

Um dies das Standardverhalten für Ihren speziellen Fall machen Sie

xnoremap c "_d 

Das bedeutet tun kann ‚x‘ in ‚xnoremap‘ diese Zuordnung zu visuellen Modus gilt (mit v) und wählen Sie Modus (mit der Maus)

Related SO link.

+0

(dies ist ein Kommentar zu der vorherigen Version Ihrer Antwort) Vielen Dank! ** ": setze clipboard =" ** macht den Trick für mich :) Wenn du deine Antwort umkehrst, rate mir bitte ": setboard clipboard =", ich werde es akzeptieren;) –

+0

@ S.V Froh ich könnte helfen! Außerdem gibt es auch eine [dedicated vim site] (http://vi.stackexchange.com/), wenn Sie weitere Fragen haben. – DJMcMayhem

+0

Danke! In der Tat wusste ich nicht über http://vi.stackexchange.com/ - irgendwie führte mich meine Google-Suche hier statt der dedizierten vim-Seite. –

Verwandte Themen