Seltsames Problem dabei, indentexpr=FortranGetFreeIndent()richtig eingestellt zu werden.
Das erste Mal, wenn ich eine Datei öffne (natürlich Freiform) new.f90, :setgibt es beispielsweise
:set --- Options --- autoindent filetype=fortran incsearch smartcase autowrite helplang=en mouse=a syntax=fortran background=dark hidden ruler textwidth=72 backup history=500 shiftwidth=3 ttyfast comments=:!,:*,:C hlsearch showcmd ttymouse=xterm2 commentstring=!%s ignorecase showmatch backspace=indent,eol,start fileencodings=ucs-bom,utf-8,default,latin1 formatoptions=tcql include=^\c#\=\s*include\s\+ indentexpr=FortranGetFixedIndent() indentkeys=0{,0},:,0#,!^F,o,O,e,=~end,=~case,=~if,=~else,=~do,=~where,=~elsewh ere,=~select,=~endif,=~enddo,=~endwhere,=~endselect,=~elseif,=~type,=~interface, =~forall,=~associate,=~block,=~enum,=~endforall,=~endassociate,=~endblock,=~ende num printoptions=paper:letter runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/ vim73,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg ,.inx,.out,.toc suffixesadd=.f95,.f90,.for,.f,.F,.f77,.ftn,.fpp Press ENTER or type command to continue
Nun, wenn ich manuell :set indentexpr=FortranGetFreeIndent()und dann etwas Code schreibe
program testfree print *,"Test free format" end program testfree
dann das nächste mal wenn ich die datei öffne, :set indentexprgibt indentexpr=FortranGetFreeIndent.
Es scheint also, dass "Zeichen in den ersten fünf Spalten der ersten 25 Zeilen erkannt werden" (Kommentar aus 'fortran.vim'), die Dateierweiterung jedoch nicht als .f90 erkannt wird, was die freie Form impliziert.
Danke für Ihre Hilfe.
By way of a >bump< --- I'm able to work around this, as described above. But it would be helpful if someone knows what might be going wrong. Thanks.
MarkWayne vor 11 Jahren
0
1 Antwort auf die Frage
0
MarkWayne
Tun Sie dies (oder den Teil davon, den Sie brauchen):
cd mkdir .vim cd .vim mkdir ftplugin cd ftplugin vi fortran.vim
Dann in fortran.vim:
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
Funktioniert jedes Mal.
Möglicherweise muss dies in ~ / .vim / filetype.vim eingegeben werden - zumindest musste ich dies unter Mac OS X tun.
MarkWayne vor 9 Jahren
0