如何避免在粘贴文本时ESS下划线自动替换为“<-”,但在编写下划线时保留它?(涉及IT技术)

7
当使用emacs写R代码时,使用ESS很有用,因为它的默认行为是将下划线'_'替换为'<-'(插入两个连续的'_'将插入下划线本身)。但是,当将代码粘贴到ESS模式下的任何缓冲区时,这种替换也会发生,并且任何'_'都会被替换为'<-',这对我来说不是期望的行为。是否有一种方法只在粘贴文本时防止替换呢?目前,我已经完全禁用了替换,将以下代码添加到我的.emacs文件中:
(ess-toggle-underscore nil)

但我希望只在写入时而非粘贴时恢复“_”到“<-”的替换。 有什么想法吗?

1
自从版本1.8.0以后,下划线就不再作为赋值运算符了,所以ESS正在“帮助”你。如果您不想键入<-,为什么不使用=赋值? - Matthew Lundberg
2
无法重现这个问题。如果我将 this_foo = 99 放入文件中,并将其复制粘贴到 ESS 中,我会得到一个名为 this_foo 的变量赋值。无论是用鼠标还是命令进行复制/粘贴都没有关系。你具体是做了什么? - Spacedman
如果我粘贴'this_and_that',当ess-toggle-underscore设置为true时,它会变成'this <- and <- that'。我正在使用emacs -nw,emacs版本是23.3.1。我如何知道正在使用的ESS版本? - Pablo Marin-Garcia
1
@PabloMarin-Garcia -- 输入 M-x ess-version <RET> 得到 ESS 版本信息。 - Josh O'Brien
1
你是如何粘贴的?使用中间鼠标按钮(Linux),Ctrl-V(Windows),Ctrl-Y(Emacs)吗?我只在Linux上使用ESS 12.09进行了测试。也许最好在ESS邮件列表上讨论这个问题? - Spacedman
只是猜测:如果您在运行GUI版本的emacs时尝试执行此操作(即不是从终端运行“emacs -nw”),那么一切都会“正常工作”,对吗? - Steve Lianoglou
1个回答

2

这种情况不应该发生。请向ess-help报告一个带有更多细节的错误或使用M-x ess-submit-bug-report进行报告。您是在终端会话中粘贴吗?


1
不确定这是否是一个 bug?如果 OP 将文本粘贴到终端中,终端(或运行它的 emacs)能知道实际上正在进行粘贴,与某人快速输入有所不同吗?我一直认为这是无法避免的。 - Steve Lianoglou
@SteveLianoglou,我已经使用终端中的emacs(使用emacs -nw)超过10年了,现在我发现使用GUI版本有优势。在窗口和终端emacs模式之间还有哪些优缺点? - Z boson
另一个GUI的优点是:可以正确地从剪贴板复制和粘贴下划线! - Z boson
现在我该怎么办?我通常在终端中有两个选项卡。一个是emacs,另一个是用于编译的终端。现在我必须在GUI和终端之间切换。这会干扰我的工作流程。 - Z boson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接