将大量代码从Xcode复制到Emacs会丢失代码

时间:2013-11-20 23:21:51

标签: xcode emacs copy-paste

我喜欢在Xcode而不是Emacs工作,但我们必须使用Emacs进行分配。

似乎每当我尝试将大量代码从Xcode复制到Emacs时,它只是在某个点之后“放弃”并留下大量文本,甚至会偶尔留下一些文本最多3或4行在它上面的地方。

这是大括号,间距,任何想法的问题吗?它可以简单地不立即复制那么多数据吗? (目前我有414行代码。)

我希望在这里解决问题的核心,而不仅仅是在它周围进行操纵。我可以通过分块数据并进行多次复制/粘贴来解决这个问题。

1 个答案:

答案 0 :(得分:0)

您可以尝试下面的代码,它提供了一个命令ttypaste-mode,您可以在粘贴之前运行#{1}}。代码到终端模拟器中运行的Emacs中。它试图解决与通过终端模拟器相关的常见问题。要退出此模式,请按ESC键。

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

;; A loop reading `read-event' is several times faster than using a kind
;; of minor mode with a keymap catching all character events; probably because
;; it avoids going through a lot of extra code, like pre-command-hook,
;; post-command-hook, ...
(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 (or (let ((inhibit-redisplay t)) (read-event nil t 0.1))
                          (with-current-buffer buf
                            (insert-buffer-substring text))
                          (erase-buffer)
                          (redisplay)
                          (read-event nil t))))
            (cond
             ((or (not (characterp char))
                  (and (eq char ?\e) (sit-for 0.1 'nodisp)))
              (setq stay nil))
             ((eq char ?\r) (insert ?\n))
             (t (insert char)))))
        (insert-buffer-substring text)))))