2012-08-10 9 views
5

Ho un codice scritto in Fortran 77 e l'ho letto con vim. Il codice è scritto in modo tale che i commenti siano su righe che iniziano con c, come è standard in Fortran 77. Tuttavia, vim non li riconosce e quindi usa una sintassi di colorazione che rende il codice molto difficile da leggere! Come posso superare questo?Evidenziazione della sintassi di Fortran 77 commenti non funzionanti in vim

Ho visto che c'è un post with the same problem. Ho letto le risposte e provato le diverse soluzioni che sono state proposte:

  1. aggiungere let fortran_have_tabs=1 a Vimrc

  2. aggiungere

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

    a Vimrc

ma non funzionano per me. Qualcuno sa perché? Ho fatto un errore da qualche parte? Altrimenti, qualcuno ha un suggerimento diverso?

+2

Quale versione di vim? Funziona se l'estensione del file è .f? – milancurcic

+1

Si sta colorando qualcosa? O sono solo i commenti non colorati? Se provi un commento di Fortran 90 (!) Lo fa colorare? Credo che il vim Fortran evidenziando la routine analizza le prime righe del file e determina se il file è in formato fisso o meno da quello. Se hai alcune cose FORTRAN 77 non standard nelle prime righe del file, si può presumere che il file sia in formato libero e quindi "c" non sarebbe considerato un commento. – SethMMorton

+0

Sarebbe bello vedere un esempio di codice per il test nella domanda. – xaizek

risposta

2

Questo è ciò che funziona per me nella mia Vimrc:

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

La parte importante è probabilmente la parte syntax enable. Potrebbe anche essere necessario questo:

filetype on 

provare anche digitando :help ft-fortran-syntax e la lettura che (o vedere qui: http://vimdoc.sourceforge.net/htmldoc/syntax.html#ft-fortran-syntax). Quello che ho portato via da quella era che avevo bisogno per creare il file ~/.vim/ftplugin/fortran.vim e mettere questo in esso:

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 

E anche mettere questo nel vostro Vimrc:

filetype plugin indent on 

che fa il trucco per me in modo che io possa visualizzare e modificare la forma libera e la forma fissa senza problemi.

Problemi correlati