微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我在远程机器上使用Emacs,它没有通过腻子的X窗口.问题是外部剪贴板(Shift Ins)的复制/粘贴速度很慢.

在Vim中,当我需要粘贴时有一个选项设置粘贴,那么Emacs是否有任何类似的功能

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

那么如何妥善解决呢?

解决方法

我不知道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)))))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐