去除包裹线末尾的反斜杠(用于复制粘贴)

时间:2013-06-08 19:49:39

标签: emacs backslash

文本模式下的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)

1 个答案:

答案 0 :(得分:2)

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

OTOH,针对您的具体问题,除了在GUI模式下运行Emacs之外,您可以让Emacs直接与桌面的剪贴板通信(而不是让终端模拟器),这样就解决了这个问题,并让你即使没有显示,也要复制文本。

X11下有xclip.el个软件包,有人发布了一个补丁(尚未集成),以便在Mac OS X下运行。