6

文本模式下的 Emacs 将 \ 字符(反斜杠)放在换行的末尾。

我不想显示它,所以我可以从这样的窗口复制粘贴到另一个窗口,而不会在粘贴的文本中获得 \。

我确信有一个简单的解决方案,但我找不到它(既不是在线的,也不是在 emacs 手册中)。最接近的似乎是Disable little arrows on far end of line


从其中的所有回复和链接中提炼出来,这就是我最终用于 Mac OS X 10.8.3 中包含的 emacs (22.1.1) 的内容。它工作得很好。再次感谢所有的帮助!

;; copy to Mac clipboard (for copying text the wrapped '\' lines                                                       
(defun copy-to-mac-clipboard ()
  "Copy currently selected region to Mac clipboard (useful for wrapped '\\' lines)"
  (interactive)
  (if (> (- (region-end) (region-beginning)) 0)
      (progn
        (shell-command-on-region (region-beginning) (region-end) "pbcopy")
        (message "region copied to Mac clipboard (%d chars)" (- (region-end) (region-beginning)))
        (if (and transient-mark-mode mark-active)
           (deactivate-mark)))
    (progn
      (message "no region active"))
    ))

;; put this next to M-w, which is kill-ring-save (copy to emacs clipboard)                                             
(global-set-key "\M-e" 'copy-to-mac-clipboard)
4

1 回答 1

2

这些\(和$)的东西被放置在我们所说的“边缘”中。遗憾的是,Emacs 目前不允许您在以文本模式运行时控制边缘。我认为安格斯指出的答案是迄今为止“我们拥有的最好的”。

OTOH,对于您的特定问题,除了在 GUI 模式下运行 Emacs 之外,您也许可以让 Emacs 直接与桌面的剪贴板通信(而不是让终端仿真器),这样就可以解决这个问题,甚至可以让您复制文本如果没有显示。

X11 下有这个xclip.el包,有人发布了一个补丁(尚未集成),使其也可以在 Mac OS X 下工作。

于 2013-06-11T15:53:33.677 回答