Vim で OptiStruct や Radioss に縦ライン表示を入れて見やすくする例題

altair_fukuoka
Altair Employee

始めに
Radioss や OptiStruct の入力ファイルを見るとき、このように縦ラインが入ると見やすいですよね。本例題は、このような縦ラインを入れるための Vim のスクリプトの例です。
Vim が使えること前提で、Vim の使い方のような話は一切しませんので、ご了承ください。
Vim スクリプト
まず、次の関数を用意します。私は .vimrc に書いています。set cc は縦線を入れることのできる設定コマンドです。この関数を呼び出すごとに 8桁、10桁、表示なし、の切り替えをします。
set cc=""
function! OreBBCCToggle()
if &cc == ""
set cc=1,9,17,25,33,41,49,57,65,73
elseif &cc=="1,9,17,25,33,41,49,57,65,73"
set cc=1,11,21,31,41,51,61,71,81,91
else
set cc=""
endif
endfunction
そして、毎回関数名でコールするのも手間なので、このように bt<enter> で呼び出しせるようにしています。
cabbrev bt <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'call OreBBCCToggle()' : 'bt')<CR>
なお、この cabbrev の使い方はネットにあったものを参考にしているだけなので、一体何が起きているのかよくわかっていません。同じような形で、バッファの変更を簡単にできるようにしています。確か、もともとこれを見つけて、そのまま使っていて、同じように書いてみたのだったと思います。やはり何が起きているのかよくわかっていません。
cabbrev b <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'b<space><c-d>' : 'b')<CR>
cabbrev bn <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'bn<bar>ls' : 'bn')<CR>
cabbrev bp <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'bp<bar>ls' : 'bp')<CR>
Tagged:
1