我最近开始使用Emacs(prelude,安装了smartparens),我正在尝试在ESS中编写一些R脚本。我发现当我选项卡完成文件路径时,例如在调用read.csv()
时,然后尝试键入第二个"
以超过它,将插入一对转义的引号。那么read.csv("~/foo/bar.csv")
应该成为read.csv("~/foo/bar.csv\"\"")
。
但是,如果我在不使用制表符完成的情况下键入文件路径,一切正常,键入第二个"
只会使光标超过它。
我尝试了this slightly different question的解决方案,现在额外的引号集不会被转义,但仍会插入。
如果我在它们之间使用制表符完成,似乎smartparens无法识别我何时达到一对引号的末尾。是这种情况,如果有,有什么方法可以解决它吗?
答案 0 :(得分:1)
您认为此行为是由smartparens
引起的。
它与关闭活动sexp
- 表达式的功能有关,如果您键入除正常键以外的任何键,则#34;像一封信。有关详细信息,请参阅函数sp-skip-closing-pair
的帮助以及其源文本。 (如果你有兴趣的话。)
为避免这种情况,您可以将sp-cancel-autoskip-on-backward-movement
自定义为nil
。
这会影响更多功能。对于实例,如果使用光标键向后移动,则不再停用sexp
。不过,您可以将光标放在sexp
。