2012-08-10 17 views
5

Tengo un código escrito en Fortran 77 y lo leí con vim. El código está escrito de manera que los comentarios están en líneas que comienzan con c, como es estándar en Fortran 77. Sin embargo, vim no los reconoce y, por lo tanto, utiliza una sintaxis de colores que hace que el código sea muy difícil de leer. ¿Cómo puedo superar esto?resaltado de sintaxis de Fortran 77 comentarios no funcionan en vim

He visto que hay post with the same problem. He leído las respuestas y probado las diferentes soluciones que se han propuesto:

  1. añadir let fortran_have_tabs=1 a .vimrc

  2. añadir

    syn match fortranComment excludenl "^[!c*].*$" [email protected],@spell 
    syn match fortranComment excludenl "!.*$" [email protected],@spell 
    

    a .vimrc

pero no funcionan para mí ¿Alguien sabe por qué? ¿He cometido un error en alguna parte? De lo contrario, ¿alguien tiene una sugerencia diferente?

+2

¿Qué versión de vim? ¿Funciona si la extensión de archivo es .f? – milancurcic

+1

¿Está coloreando algo? ¿O solo los comentarios no están coloreados? Si prueba un comentario de Fortran 90 (!) ¿Da color eso? Creo que el vim Fortran que destaca la rutina mira las primeras líneas del archivo y determina si el archivo es de formato fijo o no. Si tiene algunas cosas FORTRAN 77 no estándar en las primeras líneas del archivo, vim puede suponer que el archivo es de formato libre y, por lo tanto, "c" no se considerará un comentario. – SethMMorton

+0

Sería bueno ver una pieza de código de ejemplo para probar en la pregunta. – xaizek

Respuesta

2

Esto es lo que funciona para mí en mi .vimrc:

let fortran_have_tabs=1 
if has('syntax') && (&t_Co > 2) 
    syntax enable 
endif 

La parte importante es probablemente la parte syntax enable. También puede ser necesario esto:

filetype on 

También intente escribiendo y leyendo :help ft-fortran-syntax que (o ver aquí: http://vimdoc.sourceforge.net/htmldoc/syntax.html#ft-fortran-syntax). Lo que llevó lejos de eso era lo que necesitaba para crear el archivo ~/.vim/ftplugin/fortran.vim y poner esto en él:

let s:extfname = expand("%:e") 
if s:extfname ==? "f90" 
    let fortran_free_source=1 
    unlet! fortran_fixed_source 
else 
    let fortran_fixed_source=1 
    unlet! fortran_free_source 
endif 

Y también poner esto en su .vimrc:

filetype plugin indent on 

Eso hace el truco para mí para que pueda ver y editar forma libre y forma fija sin problemas.

Cuestiones relacionadas