除FORTRAN中的字符串外,如何将案例从上到下更改为低

时间:2015-02-25 07:05:57

标签: vim fortran

我正在处理巨大的遗留代码并将Vim视为代码格式化程序。

我可以实现以下目标:

  1. 如果可能,我想将整个代码更改为小写字符串除外。
  2. 此外,当textwidth设置为80时,gq命令将长行分开。 在这种情况下,我如何添加延续字符&自动结束?
  3. 如果有办法,请告诉我..

2 个答案:

答案 0 :(得分:3)

您可以查看一下:How change all uppercase words to lowercase, but exclude string literals in Vim

建议的解决方案是:

:%s/\%(^\%([^']*'[^']*'\)*\)\@<=[^']\+/\=substitute(submatch(0),'\<\u\+\>','\L&','g')/g

另一个有用的链接: http://www.linux.com/learn/tutorials/8255-vim-tips-the-basics-of-search-and-replace

答案 1 :(得分:2)

NAG Fortran Compiler附带一个集成的漂亮打印机:

> cat foo.f90 && nagfor =polish -idcase=L -kwcase=L -margin=0 -noblank_line_after_decls -width=80 foo.f90 && cat foo.f90_pol
PROGRAM P
  INTEGER :: I
  INTEGER :: THIS_INTEGER_VARIABLE_HAS_A_REALLY_LONG_NAME
  PRINT *, 'IS THIS THING ON?'
  I = THIS_INTEGER_VARIABLE_HAS_A_REALLY_LONG_NAME * THIS_INTEGER_VARIABLE_HAS_A_REALLY_LONG_NAME
END PROGRAM P
NAG Fortran Polisher Release 6.0(Hibiya) Build 1037
[NAG Fortran Polisher normal termination]
program p
  integer :: i
  integer :: this_integer_variable_has_a_really_long_name
  print *, 'IS THIS THING ON?'
  i = this_integer_variable_has_a_really_long_name* &
    this_integer_variable_has_a_really_long_name
end program p

(披露:我为NAG工作。)