Emacs中是否有“设置粘贴”选项以粘贴外部剪贴板中的粘贴?

时间:2013-09-09 05:29:29

标签: vim emacs terminal copy-paste putty

我在远程机器上使用Emacs,它没有通过putty的X-window。问题是外部剪贴板的复制/粘贴( Shift + Ins )非常慢。

在Vim中,当我需要粘贴时有一个选项set paste,那么Emacs是否有类似的功能?

我目前正在尝试一些解决方法:在粘贴之前,我将主模式更改为fundamental-mode,然后禁用模式行中显示的次模式,以使副作用尽可能小。但是它仍然比emacs -Q启动时慢得多。 在显示区域(迷你缓冲区)中,有以&#34开头的消息;匹配..." (括号等)。

那么如何妥善解决?

2 个答案:

答案 0 :(得分:5)

我不知道Emacs的这种“粘贴模式”。您可以从以下内容开始(新版本,使用单独的缓冲区,以便当前缓冲区的* -change函数仅在结束时调用一次):

(defvar ttypaste-mode nil)
(add-to-list 'minor-mode-alist '(ttypaste-mode " Paste"))

(defun ttypaste-mode ()
  (interactive)
  (let ((buf (current-buffer))
        (ttypaste-mode t))
    (with-temp-buffer
      (let ((stay t)
            (text (current-buffer)))
        (redisplay)
        (while stay
          (let ((char (let ((inhibit-redisplay t)) (read-event nil t 0.1))))
            (unless char
              (with-current-buffer buf (insert-buffer-substring text))
              (erase-buffer)
              (redisplay)
              (setq char (read-event nil t)))
            (cond
             ((not (characterp char)) (setq stay nil))
             ((eq char ?\r) (insert ?\n))
             ((eq char ?\e)
              (if (sit-for 0.1 'nodisp) (setq stay nil) (insert ?\e)))
             (t (insert char)))))
        (insert-buffer-substring text)))))

答案 1 :(得分:1)

如果您喜欢更多经过测试和使用的东西:

;; enable clipboard interaction between emacs and system
(setq x-select-enable-clipboard t)

它对我有用。一个简单的C-y,你很高兴! 希望有所帮助。