emacs evil 與 x window 選擇文字相通

之前 evil 的選擇文字一直和 x-window 不相通, 選了沒辦法在外面用中鍵貼上。 開始用 gui emacs 很大原因就是剪貼簿相通很方便。 今天終於找到問題,是要設定 select-enable-primary 為 t。

emacs gui 下可以直接用滑鼠點擊設游標位置, 也可以用滑鼠選取。 evil 下用滑鼠選取也會自動進 visual 模式, 但不知道為什麼選起來的內容不會送到 primary 選取區。

原本因為 emacs 模式下會,evil 不會, 以為是 evil 的問題,還去爬了 evil 的原始碼。 (其實也沒很難。) 結果是 emacs 自做聰明,選取時會偵測是否有 primary, 有就會丟進去,而 evil 沒偵測就要手動設定。

evil 是直接用 gui-select-text 把字串送到剪貼簿, 但這個函數會檢查 select-enable-primary 是 t 還是 nil, nil 的話就什麼都不做。

emacs 會額外用 gui-backend-selection-owner-p 檢查有沒有剪貼簿能用, 有就不理 gui-select-text ,直接丟進去。

所以應該要手動設定 select-enable-primary 為 t 才能用。 把 (setq select-enable-primary t) 加到 init.el 裡就好了。