LoginSignup
8
8

More than 5 years have passed since last update.

OpenFOAMのコーディングスタイルおよびエディタのカスタマイズ(Emacs&Vim)

Last updated at Posted at 2016-06-30

OpenFOAMのコーディングスタイル

The OpenFOAM Foundation: Coding Style Guide

OpenFOAMのコーディングスタイルへエディタを対応させる

XEmacs/Emacs

OpenFOAM wiki: HowTo xemacsIndentation

Vim

プラグイン

vim-OpenFOAM-syntax

Vim用のシンタックスプラグインは
GitHub: effi/vim-OpenFoam-syntax (Ver 2.1と古い)
Bitbucket: vimExtensionOpenFOAM (Ver 4.0)
で手に入ります。

GitHubの古いバージョンではSolarized color schemeを使用することを推奨しており、それは
GitHub: altercation/vim-colors-solarized
から手に入れることができます。しかしBitbucketにある最新版では、foam256 color schemeを使用しているためSolarized color schemeを導入する必要はありません。

vim用プラグイン作成過程でのやり取りはCFD Online Forum
CFD Online: Home > Forums > OpenFOAM Pre-Processing > vim Addon Highlight for OpenFOAM
に残っています。

その他

GitHub vim-scriptsを探せば便利そうなプラグインが色々見つかります。

基本設定

OpenFOAM用に$HOME/.vimrcに記述すると便利な基本設定は以下の通りです。

.vimrc
" 編集設定
set expandtab           " タブをスペースに変換(OpenFOAMはタブ使用不可のため)
set tabstop=4           " タブ幅=スペース4個分(OpenFOAMコーディングスタイルガイド参照)
set shiftwidth=4        " シフトオペレータ(>>)やautoindentで挿入される量
set softtabstop=0       " タブを押した時にスペース何個分カーソルが進むか(tabstopよりも優先順位が高い)。0に設定するとtabstopの値になる。
set shiftround          " '<''>'でインデントする際に'shiftwidth'の倍数に丸める
set infercase           " 補完時に大文字小文字を区別しない
set showmatch           " 対応する括弧などをハイライト表示する
set matchtime=3         " 対応括弧のハイライト表示を3秒にする(お好みで)
set smartcase           " 検索時に大文字小文字を区別しない
set incsearch           " インクリメンタル検索を有効にする
set autoindent          " 改行時に前行と同じインデントを保つ
set smartindent         " いくつかのC構文を認識し適切にインデントを増減させる
set cindent             " 
set whichwrap=b,s,h,l,<,>,[,]  " カーソルを行をまたいで移動 << compatibleが有効になっている場合のみ
set mouse=a             " マウス入力を受け付ける
" コマンドラインモードでTABキーによるファイル名補完を有効にする
set wildmenu wildmode=list:longest,full

" 表示設定
set number              " 行番号の表示
set wrap                " 長いテキストの折り返し
set textwidth=80        " 80文字目で自動的に改行(OpenFOAMは80カラム以内の規定があるため)
set colorcolumn=81      " 81文字目にラインを入れる
set foldlevel=1         " 折りたたむインデントレベルの設定
set foldcolumn=1        " 左端に折りたたみの状況を表示する
set hlsearch            " 検索した文字をハイライト表示
set ruler               " カーソル位置をステータス行に表示
" set list                " 不可視文字の表示
set cmdheight=2         " メッセージ表示欄を2行確保
set laststatus=2        " ステータス行を常に表示
set scrolloff=8         " 上下8行の視界を確保
set sidescrolloff=16    " 左右スクロール時の視界を確保
set sidescroll=1        " 左右スクロールは一文字づつ行う
set wildmenu            " コマンド入力時、ファイル候補を表示
set showcmd             " 入力中のコマンドを表示する
set cusorline           " カーソル行にラインを表示

" 折り畳み設定
set foldmethod=syntax   " コードの折りたたみ方法
set fold column=2       " 左端の折り畳み状況を表示する列数
let g:c_gnu=1             " gcc固有のsyntax
let g:c_comment_string=1  " C言語のコメント用syntax
let g:c_curly_error=1     " C言語の括弧用syntax

ちなみにこちらによると、下記のようにすれば81カラム以降の色を全て変えることができます。(ただし少しvimが遅くなるのと引き換えです。)

let &colorcolumn=join(range(81,999),",")
8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8