Pagina 1 di 1

vimrc e fortran

Inviato: martedì 15 febbraio 2011, 18:33
da Eddy_van_halen2001
Salve a tutti.

Sono un paio di giorni che cerco invano di settare il mio file vimrc in modo tale che mi possa automaticamente differenziare le impostazioni tra i file .f77 e i .f90 (ad esempio andando a capo dopo 72 colonne e illuminandomi le colonne precedenti alla 7 per il .f77).

Vi riporto ciò che avevo fatto:

Codice: Seleziona tutto

" File fortran .f77
 autocmd Filetype f77 setlocal sw=7 sts=4 et tw=74 sta
 autocmd Filetype f77 set autoindent
" #commenti
 autocmd Filetype f77 map % :s/^/c/<CR>
 autocmd Filetype f77 map - :s/^c//<CR>
"
" File fortran .f90
 autocmd Filetype f90 setlocal sw=4 sts=4 et tw=115 sta
 autocmd Filetype f90 set autoindent
" #commenti
 autocmd Filetype f90 map % :s/^/!/<CR>
 autocmd Filetype f90 map - :s/^!//<CR>
Tuttavia non c'era alcuna differenza tra i due tipi di file, e a dirla tutta nemmeno mi vengono riconosciuti i comandi "mappati" di commento.
Quello che succede è che se apro il file con

Codice: Seleziona tutto

vim prova.f77
o

Codice: Seleziona tutto

vim prova.f90
le cose sono identiche nonostante lo script di cui sopra, ma se apro il file senza estensione e poi gli cambio nome

Codice: Seleziona tutto

vim prova
mv prova prova.f90
la sintassi viene riconosciuta ma non mi va più a capo alla colonna 74 nè mi evidenzia le prime 6 colonne.

Sono quindi giunto alla conclusione che vim di default mi riconosce i formati .f* tutti nello stesso modo e che le mie istruzioni presenti nel vimrc sono inutili.
Infatti nel file filetype.vim ho trovato le seguenti linee di codice:

Codice: Seleziona tutto

691 " Fortran
 692 if has("fname_case")
 693   au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95  setf fortran
 694 endif
 695 au BufNewFile,BufRead   *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95  setf fortran
insomma vim di default tratta tutti i file allo stesso modo.

come posso fare per apportare le modifiche che vio ho scritto ad inizio post?

Scusate la prolissità e grazie mille a chiunque mi voglia/possa aiutare.

Marco