Emacs的ESS模式制表位缩进(Emacs ESS Mode TAB stops indentin

2019-09-24 03:40发布

我使用的是Windows上的Emacs 24写一些R代码里面。 直到大约30分钟前,每当我会写一个新的功能,ESS将自动缩进下面的函数声明,并按下一个新的空白行Tab键会跳我的声明内适当缩进的起始位置的线。

例如:

foo <- function() {
    first line started here
    second line here.  .etc
}

现在,它是硬包装的一切到左边,而不是由函数声明之后自动缩进或当我按下TAB键响应。

foo <- function() {
first line
second line
}

我GOOGLE了,但我的谷歌福失败了我这一点。 任何人都知道如何默认选项卡的行为恢复到ESS在Emacs?

Answer 1:

尝试“#”后添加一个空格。 我不认为ESS-模式处理#为注释,除非你之后有空间。



Answer 2:

只是备案。 当这样的事情发生,选择整个缓冲区CX小时 ,按CM- \缩进整个区域。 这将毫无疑问地显示了语法错误。



Answer 3:

我只是碰到你描述了同样的问题来了。

以上都不似乎工作,但我把范围缩小到使用字符串中回车,然后左括号,就像这样:

### indent ( <tab> ) working fine up to here 
   s1 <- "string
(then this in brackets)"
### now indent does nothing!

它后来的平衡其实于事无补。 我觉得Emacs读取本作中,尽管它在带引号的字符串发生的事实打开一个新的表达式/块。 这似乎也适用于表达叹为观止{[ 。 它似乎只在“开放式”符号出现在该行的开始发生...

在我的情况下,字符串是一场阴谋标签的一部分,因此该解决方案是使用\n来代替。



文章来源: Emacs ESS Mode TAB stops indenting
标签: r emacs elisp ess