So greifen Sie mit Emacs + Evil auf die Zwischenablage des Betriebssystems zu

8

Wie kann ich in / aus der Windows-Zwischenablage ziehen, wenn ich Folgendes verwende:

  • Windows 7 (x64)
  • GNU Emacs 24.4.1 (x64)
  • Das Böse 1.0.9
  • und (setq x-select-enable-clipboard nil)in meinem haben .emacs? (Ich habe diese Linie dort , weil ich nicht wollte , dass vim Änderungen ( x, dusw.) mein o Zwischenablage verprügeln.

Ich habe versucht "+p, "*p, "+y, "*y, CTRL+Yaber es funktioniert nicht. Wenn ich laufe, wird :registerses nicht einmal angezeigt +oder *registriert.

Zur Verdeutlichung: Ich möchte, dass sich Emacs beim Kopieren / Ziehen in / aus verschiedenen Registern wie Vim verhält, ohne die Zwischenablage bei jedem Textänderungsbefehl zu beschädigen. Bestimmtes:

  • yy- sollte NICHT Text in die Zwischenablage des Betriebssystems ziehen (nur um sich zu 0registrieren)
  • "+yy - sollte Text in die Zwischenablage ziehen
  • dd - sollte NICHT in der Zwischenablage verstopfen
  • cw - NICHT in die Zwischenablage stecken
  • usw.
Kossak
quelle

Antworten:

5

Ich habe die Integration der Zwischenablage deaktiviert mit:

(setq x-select-enable-clipboard nil)

Dann sollten Sie immer noch in der Lage sein, mit dem + Register des Bösen zu kopieren und einzufügen. Wenn Sie dennoch ohne Übel in die Zwischenablage integrieren möchten, können Sie diese Funktion zum Einfügen verwenden:

(defun paste-from-clipboard ()
  (interactive)
  (setq x-select-enable-clipboard t)
  (yank)
  (setq x-select-enable-clipboard nil))

und dieses zum Kopieren:

(defun copy-to-clipboard()
  (interactive)
  (setq x-select-enable-clipboard t)
  (kill-ring-save (region-beginning) (region-end))
  (setq x-select-enable-clipboard nil))

Binden Sie dann copy-to-clipboardan M-wund paste-from-clipboardan C-yoder an eine andere Tastenkombination Ihrer Wahl.

Edit: Ich verwende Archlinux. Ich kann nicht sagen, ob dies unter Windows funktioniert.

Jesse
quelle
Unter Linux Mint das (setq x-select-enable-clipboard nil)ist genug , um auch , weil es +und *Register zur Arbeit mit os Zwischenablage leider nicht unter Windows.
Kossak
Ich habe Ihre benutzerdefinierte Funktion (in Windows) mit dem bösen Plugin (setq x-select-enable-clipboard nil)ausprobiert und : Das Ziehen aus der Zwischenablage funktioniert wie es sollte, aber ich kann die Auswahl nicht in die Zwischenablage ziehen (mit Bindungen (define-key evil-normal-state-map (kbd "C-y") 'paste-from-clipboard)und(define-key evil-visual-state-map (kbd "C-y") 'paste-from-clipboard)
Kossak
Ich bin nicht sicher, ob ich verstehe, was du meinst, paste-from-clipboardwird nur aus der Zwischenablage einfügen. Sie benötigen eine weitere Funktion zum Kopieren in die Zwischenablage. Ich habe die Frage bearbeitet, um eine copy-to-clipboardFunktion hinzuzufügen . Bitte versuchen Sie, ob es funktioniert
Jesse
Ich habe fälschlicherweise gedacht, dass die yankFunktion in und aus der OS-Zwischenablage kopiert wird (basierend auf dem Vorhandensein einer visuellen Auswahl). Ihre andere Funktion macht was ich will, danke.
Kossak
2

https://github.com/rolandwalker/simpleclip

Es deckt ALLE Anwendungsfälle unter Mac / Linux / Windows / Cygwin ab.

Insbesondere gibt es zum Kopieren und Einfügen nur zwei Befehle:

simpleclip-get-contents
simpleclip-set-contents

Sie können auch Kurztasten zuweisen.

Chen Bin
quelle
Das ist wunderbar, es vereinfacht die Interaktion mit der Zwischenablage drastisch.
Loevborg