CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Pre-Processing (
-   -   vim Addon Highlight for OpenFOAM (

Tobi April 1, 2012 14:15

vim Addon Highlight for OpenFOAM
1 Attachment(s)
Hi all together,

i am working with OpenFOAM and vim for changing all the files. When i work with bash or c++ the nice thing is, that vim highlight the code so i decided to create a vim highlight for the standard openFOAM case files.

I am not sure if that is helpful for anybody but i wanna share it with you. Its just a beta version and not an accurate tool. I fixed some bugs but there are still some and i implemented just the standard boundary conditions and solvers.

You can give me a feedback and i ll work on a new version for that.

you can download it on: on the button "Skripte & Addons"


sail April 3, 2012 15:15

Hi Tobi.

Tahnks for sharing. your script seems very useful. Unfortunately i wasn't able to get it because i get an error 404 when i try to download it.

hope it is not an april's fool joke :D


Edit: I've been succesfull eliminating the 1.1 in the filename. is it still the latest and gratest version?

Tobi April 3, 2012 17:16


thx for the error report.
that was not really a april joke :D
i uploaded the file but did not rename it to 1.1 - now i ve renamed the file and the download is working.

And yes - its still the latest version.
Let me know if its useful for you!


Bernhard April 4, 2012 03:33

Nice work Tobias! Thanks for this.

I upgraded your install-script a bit, so that it will also work for non-root users of VIm

mkdir -p $HOME/.vim
mkdir -p $HOME/.vim/syntax
mkdir -p $HOME/.vim/colors

cp -i syntax/openfoam.vim $HOME/.vim/syntax/
cp -i scripts.vim $HOME/.vim/
#cat .vimrc >> $HOME/.vimrc
cp -i colors/openfoamcolor.vim $HOME/.vim/colors

Also, for the installscript, it may better to be a bit more careful with .vimrc and .vim/scripts. I can imagine that it may be better to cat >>

Tobi April 4, 2012 12:10

hi berhard,

thx for that new code.
i update my install file now :)



PS: the suggestion with cat is very good. I ll write a readme with short information!

Tobi April 7, 2012 09:00

Hi all,

a new version of the vim Addon for OpenFOAM is avaiable on my homepage.

Have fun!


Tobi April 22, 2012 08:37

HI all,

its avaiable on git :)


kalle April 26, 2012 01:43

Nice! Thanks for sharing!

Some mod may make it more precise though:


let cnum = 1
while 1
  if (getline(cnum) =~ 'FoamFile')
      setfiletype openfoam
      colorscheme openfoamcolorBlackWhite
  elseif (cnum == 20)
  let cnum += 1


Tobi April 26, 2012 12:04

sounds very good - i ll implement it next week when I am back on my personal computer :)

thanks good idea

>>> Changed <<< :)

Tobi March 14, 2013 04:40

Hi all,

I made some changes during the last half year.

Now I ll update for the version 2.2.x and adding new keywords.

Have fun.

Tobi March 14, 2013 09:24


Originally Posted by Tobi (Post 352559)
Hi all together,

you can download it on: on the button "Skripte & Addons"

The new links is:

Karel November 30, 2013 16:09


thanks for sharing this, it works perfectly.
I have been using highlighting for c++ till now, but this one is much better.


Tobi December 2, 2013 07:48

Hi Karel,

thanks for your feedback.

I am going to extend the keywords in my winter holyday.

I Keep you posted

Bernhard December 2, 2013 08:48

What might help you, is the following command from the $FOAM_SRC directory.


grep -oh "TypeName(\"[A-Za-z0-9]*\")" -r * | cut -d\" -f2
TypeName defines the name in the runtime selectiontable, so this is basically what you put in all the dictionaries :)

Tobi November 4, 2014 06:38

Hello all,

I added new keywords to the vim Extension and also changed the tab size to 4 spaces.
At the moment I switch all my repositories from github to the bitbucket server. Therefor you find the latest version here:

Tobi November 17, 2014 10:50

Hello all,

I reorganized the file tree in the vim extension. Now you can add things very easy and it looks like the openfoam tree:

├── openfoam
│  ├── 0
│  │  ├── BC.vim
│  │  └── foamVariables.vim
│  ├── constant
│  │  ├── polyMesh
│  │  │  ├── blockMeshDict.vim
│  │  │  └── boundary.vim
│  │  ├── radiationProperties.vim
│  │  ├── RASProperties.vim
│  │  ├── regionProperties.vim
│  │  ├── solidThermophysicalProperties.vim
│  │  ├── thermodynamicProperties.vim
│  │  ├── transportProperties.vim
│  │  └── turbulenceProperties.vim
│  ├── general.vim
│  └── system
│      ├── changeDictionaryDict.vim
│      ├── controlDictFunctions.vim
│      ├── controlDict.vim
│      ├── decomposePar.vim
│      ├── fvSchemes.vim
│      ├── fvSolution.vim
│      ├── setFieldsDict.vim
│      └── snappyHexMeshDict.vim
└── openfoam.vim

If you want to add new syntax highlighting, just add a new file or edit the existing one.
The next days I will check out the colour schemes again to be more flexible.

Additionally I added a new check in the install script.
Have fun,...

Logan Page November 18, 2014 11:05

Out of interest what addon/s do you use for code completion, jumping around the OpenFoam source code, compiling, debugging, etc. in vim?

Tobi November 19, 2014 15:51

Dear all,

I am happy to let you know that I finished the version 3.0.
This contains a lot news. Especially the syntax in the files which looks like that now:

" Contributor: Tobias Holzmann                "
" Last Change: November 2014                  "
" Version:    3.0                            "
" Email: "

" thermophysicalProperties

    "- Special behavior of specie mixture
    syn match thermodynamicSpecie2
    \ " \=specie\{1} \=
    \\| \=mixture\{1} \="
    hi link thermodynamicSpecie2 foam256_keyOnLeftSide

    "- Special behavior of specie at the end
    syn match thermodynamicSpecie1
    \ " \{1}specie\{1};\{1}"
    hi link thermodynamicSpecie1 foam256_keyOnRightSide

    "- Dictionarys (main)
    syn match thermodynamicDict
    \ "^thermoType
    hi link thermodynamicDict foam256_dictionary

    "- Special keywords on the left side
    syn keyword thermodynamicKeys
    \ thermo
    \ equationOfState
    \ energy
    \ thermodynamics
    \ transport
    hi link thermodynamicKeys foam256_keyOnLeftSide

    "- Thermodynamic models etc.
    syn keyword thermodynamicSettings
    \ nMoles
    \ molWeight
    \ Tlow
    \ Tcommon
    \ Thigh
    \ highCpCoeffs
    \ lowCpCoeffs
    \ CpCoeffs
    \ muCoeffs
    \ kappaCoeffs

  • code is much more readable
  • line size of each line is limited to 80 characters
  • additional checkouts in the script.vim to check in a better way and let the color be more consistent
  • I also created a bash function which will check automatically the available BC and insert them to the file (at the moment not published, but I will insert it)
  • New color schemes with 256 color support now and its a lot easier to change the colors now and modify it like you want
  • A lot of new keywords added

Available at

I hope its useful for anybody using vim!
Feel free to modify the files and push it to the repository.

@Logan: Plugins for C++, Jumping with buffers and ":b# or number" for compiling I think you can do it because you can do everything in vim. I have to look for that.

Logan Page November 20, 2014 06:53

Here is what I've been able to sort out in vim to get it to be a complete IDE for OpenFOAM

Syntax Highlighting:
At the moment I'm using standard C++ syntax highlighting, but will be trying out Tobi's addon soon.

Code completion and jumping to definitions/declarations etc:

I was able to get the YouCompleteMe addon for vim ( to work very nicely with OpenFoam.

A simple key binding to wmake in vim

nmap <silent> <Leader>mf :!wmake %:p:h<CR>
Haven't looked into this yet

Tobi November 20, 2014 06:59

Please notice that my stuff is not for coding.
Its only for the openfoam cases.

For completition also use

And the wmake - its clear (:

Thanks for the link for code completition. I think its similar to:
Maybe this would be very nice to have in the FOAM files too!

All times are GMT -4. The time now is 20:34.