r - emacs ess-indent-or-complete 将换行符发送到 R 进程
问题描述
有时,由于我无法确定的原因,ess-indent-or-complete
将输入发送到R
控制台。换句话说,我将输入一些内容,点击选项卡以自动完成(或company
自动完成),并且该R
过程将使用换行符更新(.R
左侧“缓冲区”中的文件,R
右侧的过程):
x <- mea█ | >
|
|
...然后我点击标签完成“ mean
”:
x <- mean█ | >
| > ## note the new line here
|
这可能真的很烦人,至少有两个原因:
- 它用空行填充进程缓冲区。
- 如果我使用 a
browser()
,它会推进通常不受欢迎的行。
我试图自己诊断,但无济于事。每次重新启动 emacs 都会修复它,但它似乎在一天中开始随机发生。一旦启动它就不会停止,直到 emacs 重新启动。
我正在运行emacs 27.1
,ess-20210818.843
(尽管这已经存在很长时间了,所以我不相信它是特定于版本的),并且在ESS[R] mode
.
2022-03-01 更新:
我仍在努力解决这个问题。我可以确定的功能链如下所示:
<TAB>
来电(ess-indent-or-complete)
。(completion-at-point)
如果事物已经缩进,这会调用。- 这引用了变量
completion-at-point-functions
。 - 这个变量的最后一个条目是
(ess-r-object-completion)
,它被使用。 - 这调用
(ess-r-get-rcompletions)
. - 这调用
(ess-get-words-from-vector)
. - 这调用
(ess-command)
.
一旦在特定会话中开始发生,M-: (ess-command "")
从我的文件缓冲区调用会复制不良行为。.R
除此之外,我没有任何见解。
解决方案
推荐阅读
- git - mac OS catalina 上的 git clone 命令面临问题
- sql - 使用 SQL Server 对学生成绩进行排序
- java - 从 Redis 获取密钥
- php - 文件链接在本地主机 http://127.0.0.1:8000 上的 laravel 中不可用
- javascript - 如何在 React Single page Web App 中使用 AVIF 图像
- python - 推送到heroku时的Django频道2路由问题
- reactjs - 如何在材料表中显示菜单项
- php - 有没有办法重构多个相似的 PHP 三元组?
- python - 正则表达式:如何从此字符串中捕获多个文本?
- python - 关于谷歌或工具(python)