vim fortran vấn đề indentexpr


1

Vấn đề kỳ lạ ở đây với việc nhận được indentexpr=FortranGetFreeIndent() để được đặt chính xác.

Lần đầu tiên tôi mở một tập tin (tất nhiên là dạng miễn phí), hãy nói new.f90, :set cho

: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

Bây giờ, nếu tôi thủ công :set indentexpr=FortranGetFreeIndent() và sau đó viết một số mã

program testfree
   print *,"Test free format"
end program testfree

Sau đó, lần sau khi tôi mở tập tin, :set indentexpr cho indentexpr=FortranGetFreeIndent.

Vì vậy, có vẻ như "các dấu hiệu được phát hiện trong năm cột đầu tiên của 25 dòng đầu tiên" (bình luận trích dẫn từ 'fortran.vim') nhưng phần mở rộng tệp không được công nhận là .f90 ngụ ý dạng miễn phí.

Cảm ơn bạn đã giúp đỡ.


Bằng cách & gt; vết sưng & lt; --- Tôi có thể làm việc xung quanh điều này, như được mô tả ở trên. Nhưng nó sẽ hữu ích nếu ai đó biết những gì có thể xảy ra. Cảm ơn.
MarkWayne

Câu trả lời:


0

Làm điều này (hoặc phần đó của nó mà bạn cần):

cd
mkdir .vim
cd .vim
mkdir ftplugin
cd ftplugin
vi fortran.vim

Sau đó, trong 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

Hoạt động - mọi lúc.


Có thể cần phải đặt cái này vào ~ / .vim / filetype.vim - ít nhất đó là những gì tôi phải làm trên Mac OS X.
MarkWayne
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.