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

Ste*_*wig 5 emacs backslash

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

我希望没有显示,所以我可以从这样的窗口复制粘贴到另一个窗口,而不会在粘贴的文本中获得\.

我确信有一个简单的解决方案,但我找不到它(既不在线,也不在emacs手册中).最接近的似乎是在线的远端禁用小箭头.


从其中的所有回复和链接中提取,这是我最终用于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)
Run Code Online (Sandbox Code Playgroud)

Ste*_*fan 2

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

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

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