如何在 Emacs 的 F90 模式下获得正确的自动续行?
How to get correct automatic continuation lines in F90 mode in Emacs?
假设我正在 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
时,我得到 neither any continuation character &
, nor 任意缩进:
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.要删除前导符号 ,请将以下行添加到您的 .emacs
文件中:
(setq f90-mode-hook
'(lambda () (setq f90-beginning-ampersand nil)))
2。要打破现有代码的太宽行 ,请使用 f90-fill-region
而不是 fill-paragraph
。
请注意,f90-fill-region
命令在注释行上使用时会导致 Emacs 崩溃(已测试版本 24.5.1 和 25.3.1),而 fill-paragraph
命令对它们没有任何作用。似乎没有适合代码和注释行的填充命令。
更新: 自由格式 Fortran 主模式f90.el
的维护者刚刚将一个 update 推送到 GitHub,它添加了一个函数 f90-fill-paragraph
。此命令适用于注释行和代码。
假设我正在 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
时,我得到 neither any continuation character &
, nor 任意缩进:
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.要删除前导符号 ,请将以下行添加到您的 .emacs
文件中:
(setq f90-mode-hook
'(lambda () (setq f90-beginning-ampersand nil)))
2。要打破现有代码的太宽行 ,请使用 f90-fill-region
而不是 fill-paragraph
。
请注意,f90-fill-region
命令在注释行上使用时会导致 Emacs 崩溃(已测试版本 24.5.1 和 25.3.1),而 fill-paragraph
命令对它们没有任何作用。似乎没有适合代码和注释行的填充命令。
更新: 自由格式 Fortran 主模式f90.el
的维护者刚刚将一个 update 推送到 GitHub,它添加了一个函数 f90-fill-paragraph
。此命令适用于注释行和代码。