有时,由于我无法确定的原因,ess-indent-or-complete会将输入发送到R控制台。换句话说,我将输入一些内容,点击选项卡以自动完成(或company对我来说自动完成),并且该R过程将用换行符更新(.R左侧“缓冲区”的文件,R右侧的过程):
x <- mea\xe2\x96\x88 | >\n |\n |\nRun Code Online (Sandbox Code Playgroud)\n...然后我点击 Tab 来完成“ mean”:
x <- mean\xe2\x96\x88 | >\n | > ## note the new line here\n |\nRun Code Online (Sandbox Code Playgroud)\n这可能真的很烦人,至少有两个原因:
\nbrowser(),它会提前行,这通常是不可取的。我自己尝试诊断此问题,但无济于事。每次重新启动 emacs 都会修复它,但它似乎全天随机发生。一旦启动,它就不会停止,直到 emacs 重新启动。
\n我正在运行emacs 27.1,ess-20210818.843(尽管这已经存在很长时间了,所以我不相信它是特定于版本的),并且处于ESS[R] mode.
一旦在特定会话中开始发生不需要的行为,M-: (ess-command "")从我的文件缓冲区调用就会复制该行为。.R除此之外我没有任何见解。
我认为你自己解决了这个问题,并提出了你的 GH 问题建议: https: //github.com/emacs-ess/ESS/issues/1198
我已经在我自己的 ESS 版本中进行了更改,并将在测试几天后提交。
非常非常感谢您的坚持和(我认为)找到错误..内部的一个简单的拼写错误(ess--command-make-restore-function)