2013-06-15 3 views

Antwort

0

Ich schickte diese an die Übel Modus Mailingliste:

Probleme mit Zwischenablage Geschichte und Auswahl

Die aktuelle Implementierung von x-select-enable-Zwischenablage Anrufen x-select-Text für alle Bewegung Cursor mit einer Auswahl. Dies ist nicht das Verhalten bei Verwendung des nicht-bösen Modus. Im Grunde übernimmt Emacs den Verlauf meiner Zwischenablage, es sei denn, der folgende Patch ist fertig. Ich bin auf einem Mac und benutze Alfred Zwischenablage Geschichte.

Meine Änderung unten in Fett scheint dieses Problem zu beheben.

  1. Ist das das Richtige?
  2. Gibt es eine Beitragsseite, die erklärt, wie Sie zu diesem Projekt beitragen können? Ich bin vertraut mit Github Gabeln und Pull-Anfragen.

Danke,

Justin

(setq x-select-enable-clipboard nil) 
(defun evil-visual-update-x-selection (&optional buffer) 
    "Update the X selection with the current visual region." 
    (let ((buf (or buffer (current-buffer)))) 
    (when (buffer-live-p buf) 
     (with-current-buffer buf 
     (when (and (evil-visual-state-p) 
        (fboundp 'x-select-text) 
        (or (not (boundp 'ns-initialized)) 
         (with-no-warnings ns-initialized)) 
        (not (eq evil-visual-selection 'block))) 
      ;; CHANGE 
      ;; ONLY call x-select-text if x-select-enable-clipboard is true 
      (if x-select-enable-clipboard 
       (x-select-text (buffer-substring-no-properties 
           evil-visual-beginning 
           evil-visual-end)))))))) 
2

Nach einigen Graben in das gleiche Problem zu tun, wie ich glaube, dass das Problem liegt tatsächlich in der Emacs x-select-text Funktion, die explizit den Wert von x-select-enable-clipboard ignoriert auf NextStep (und OS X ist ein NextStep).

Ich habe "gelöst" dieses Problem, indem x-select-text mit einer no-op-Funktion zu ersetzen, dann mit ns- explizit {get, set} Pappe für interprogram {Ausschneiden, Einfügen} -Funktion:

; Override the default x-select-text function because it doesn't 
; respect x-select-enable-clipboard on OS X. 
(defun x-select-text (text)) 
(setq x-select-enable-clipboard nil) 
(setq x-select-enable-primary nil) 
(setq mouse-drag-copy-region nil) 

(setq interprogram-cut-function 'ns-set-pasteboard) 
(setq interprogram-paste-function 'ns-get-pasteboard) 

hier ist das Original x-select-text Code:

 
(defun x-select-text (text) 
    "Select TEXT, a string, according to the window system. 

On X, if `x-select-enable-clipboard' is non-nil, copy TEXT to the 
clipboard. If `x-select-enable-primary' is non-nil, put TEXT in 
the primary selection. 

On MS-Windows, make TEXT the current selection. If 
`x-select-enable-clipboard' is non-nil, copy the text to the 
clipboard as well. 

On Nextstep, put TEXT in the pasteboard (`x-select-enable-clipboard' 
is not used)." 
    (cond ((eq (framep (selected-frame)) 'w32) 
     (if x-select-enable-clipboard 
      (w32-set-clipboard-data text)) 
     (setq x-last-selected-text text)) 
     ((featurep 'ns) ; This is OS X 
     ;; Don't send the pasteboard too much text. 
     ;; It becomes slow, and if really big it causes errors. 
     (ns-set-pasteboard text) 
     (setq ns-last-selected-text text)) 
     (t 
     ;; With multi-tty, this function may be called from a tty frame. 
     (when (eq (framep (selected-frame)) 'x) 
      (when x-select-enable-primary 
      (x-set-selection 'PRIMARY text) 
      (setq x-last-selected-text-primary text)) 
      (when x-select-enable-clipboard 
      (x-set-selection 'CLIPBOARD text) 
      (setq x-last-selected-text-clipboard text)))))) 
+0

Jeder Grund, diese Antwort ist besser? – justingordon

+0

Es behebt das Problem, dass ausgewählter Text überall auf der Tastatur erscheint, nicht nur von Evil. –

+0

Für mich scheinen diese ns-set-pasteboard, ns-get-pasteboard nicht zu existieren, so bekomme ich Fehler beim Schneiden von Text etc. (emacs-mac) –

3

über diese Zeit kam nach einer Lösung für dieses Problem googeln. Was ich gefunden habe zu arbeiten ist ein Teil der Spacemacs FAQ:

(fset 'evil-visual-update-x-selection 'ignore) 
Verwandte Themen