VimのFortran開発環境設定 2020 (プラグイン不要)
( ´_ゝ`)ノシ
yoshitiaです。
以前技術書典で
を頒布されていた方にfortran向けのVimd設定あれば情報ください、と
お言葉頂いていたのですがすっかり忘れていて
今頃思い出しましたorz
タイトルにプラグイン不要と付けているのは
意外と無しでもできる設定があるので
それから紹介してみようかと。
※今回の設定は全てvimrcに記述します。
termdebug
:terminal
が動くVim8なら多分使える。
gdbで使えるものです。
" vimrcの先頭に書く事。 :Termdebug コマンドで使う。 packadd termdebug set mouse=a let g:termdebug_wide = 160
swapファイル等の設定
デフォルトだと開いてるファイルと同じ場所に作るので
下記の設定で場所を変更します。
" vimでファイル編集中に出るバックアップファイル類の場所をおまとめ " 指定したディレクトリはvim起動前に作っておかないとエラー出る set directory=~/.vim/swap set backupdir=~/.vim/tmp set undodir=~/.vim/undo
解説記事はこちら。
momoiro-tj.hateblo.jp
FileType、シンタックスハイライト
vimのファイル拡張子ごとに設定されている
インデントやシンタックスハイライトの機能をオンにします。
対応してない言語やデフォルトの設定がイマイチな場合は
後で設定やプラグイン追加して対応します。
fortranのシンタックスハイライトはデフォルトで対応しています。
" ファイル拡張子ごとに対応する " filetypeプラグインやインデント設定があれば読み込むようにする filetype plugin on filetype indent on " シンタックスハイライトオン。 syntax on
インデント、短縮入力
fortranのインデント設定は微妙なようなので
vimrcで設定します。
今どきのテキストエディタだと入力支援、
vim界隈だとテキスト自動補完と良く呼ばれている機能ですが
慣れている人でも設定に時間かかったり手こずります。
その上、fortran向けの自動補完は苦労の割には
型名補完くらいしかやってくれなさそうです。
(2020/10 、yoshitiaが確認した限り。)
VScodeのfortran向け拡張機能はいい感じで補完してくれます。
代用としてちょっと練習が必要ですが短縮入力を設定します。
コード入力時、;bd
のように入力して
他の文字を追加で入力するとblock data
のように展開されます。
" fortranの拡張子のファイルでのインデント設定 " expandtab (スペースでインデント) shiftwidth, tabstop (インデント幅指定) " setlocal iskeyword+=; デフォルトだとiabbrevに;が使えないので追加 " 短縮入力設定参考URL: " https://www.sci.hokudai.ac.jp/~inaz/doc/B/Education/node14.html augroup fortran_indent_and_abbrevation autocmd! autocmd FileType fortran setlocal expandtab shiftwidth=4 tabstop=4 autocmd FileType fortran setlocal iskeyword+=; autocmd FileType fortran iabbrev ;bd block data autocmd FileType fortran iabbrev ;ch character autocmd FileType fortran iabbrev ;cl close autocmd FileType fortran iabbrev ;c continue autocmd FileType fortran iabbrev ;cm common autocmd FileType fortran iabbrev ;cx complex autocmd FileType fortran iabbrev ;df define autocmd FileType fortran iabbrev ;di dimension autocmd FileType fortran iabbrev ;dc double complex autocmd FileType fortran iabbrev ;dp double precision autocmd FileType fortran iabbrev ;e else autocmd FileType fortran iabbrev ;ed enddo autocmd FileType fortran iabbrev ;el elseif autocmd FileType fortran iabbrev ;en endif autocmd FileType fortran iabbrev ;eq equivalence autocmd FileType fortran iabbrev ;ex external autocmd FileType fortran iabbrev ;ey entry autocmd FileType fortran iabbrev ;f format autocmd FileType fortran iabbrev ;fa .false. autocmd FileType fortran iabbrev ;fu function autocmd FileType fortran iabbrev ;g goto autocmd FileType fortran iabbrev ;im implicit autocmd FileType fortran iabbrev ;inc include autocmd FileType fortran iabbrev ;in integer autocmd FileType fortran iabbrev ;intr intrinsic autocmd FileType fortran iabbrev ;l logical autocmd FileType fortran iabbrev ;o open autocmd FileType fortran iabbrev ;pa parameter autocmd FileType fortran iabbrev ;pr program autocmd FileType fortran iabbrev ;ps pause autocmd FileType fortran iabbrev ;p print autocmd FileType fortran iabbrev ;re real autocmd FileType fortran iabbrev ;r read autocmd FileType fortran iabbrev ;rt return autocmd FileType fortran iabbrev ;rw rewind autocmd FileType fortran iabbrev ;s stop autocmd FileType fortran iabbrev ;sa save autocmd FileType fortran iabbrev ;st structure autocmd FileType fortran iabbrev ;sc static autocmd FileType fortran iabbrev ;su subroutine autocmd FileType fortran iabbrev ;tr .true. autocmd FileType fortran iabbrev ;ty type autocmd FileType fortran iabbrev ;w write augroup end
解説記事はこちら。
www.sci.hokudai.ac.jp
本記事は以上になります。
追加でプラグイン記事を書く予定です。