如何在Emacs中以F90模式获得正确的自动延续线?

时间:2017-11-07 16:49:53

标签: emacs fortran fortran90

假设我在F90模式下编写一些(自由格式)Fortran代码,如何在键入时获得正确的自动延续行,以及如何在使用fill-paragraph时正确连续行?

代码示例:

subroutine procedure_with_many_arguments(argument1, argument2, argument3, argument4, argument5, argument6, argument7)

real ::  argument1, argument2, argument3, argument4, argument5, argument6, argument7

end subroutine

1。使用auto-fill-mode 键入此代码时,我会在两个行上获得延续字符&,还会出现一些奇怪的固定格式缩进(省略第二个和这里的第三个陈述):

subroutine procedure_with_many_arguments(argument1, argument2, argument3,&
     & argument4, argument5, argument6, argument7)

2。在现有的,过宽的代码上使用fill-paragraph时,我既不任何续行字符&也不任何缩进:< / p>

subroutine procedure_with_many_arguments(argument1, argument2, argument3,
argument4, argument5, argument6, argument7)

real :: argument1, argument2, argument3, argument4, argument5, argument6,
argument7

end subroutine

预期结果:

subroutine procedure_with_many_arguments(argument1, argument2, &
  argument4, argument5, argument6, argument7)

real :: argument1, argument2, argument3, argument4, argument5, &
  argument6, argument7)

end subroutine

1 个答案:

答案 0 :(得分:1)

在这里回答我的问题:

<强> 1。要摆脱领先的&符号,请将以下行添加到.emacs文件中:

(setq f90-mode-hook
  '(lambda () (setq f90-beginning-ampersand nil)))

<强> 2。要打破现有代码的过多行,请使用f90-fill-region代替fill-paragraph

请注意,f90-fill-region命令在注释行(版本24.5.1和25.3.1已测试)上使用时会崩溃Emacs,而fill-paragraph命令对它们不执行任何操作。似乎没有适合代码和注释行的填充命令。

更新:自由格式Fortran主要模式f90.el的维护者只是将update推送到添加了函数f90-fill-paragraph的GitHub。此命令适用于注释行和代码。