diff --git a/user-doc/Miscelaneous.md b/user-doc/Miscelaneous.md
index de99e8fe4d8eaddd66f4cb53db3a221f0656e13b..a73eaa3b123545528ca46d5bb85074b5e17ca003 100644
--- a/user-doc/Miscelaneous.md
+++ b/user-doc/Miscelaneous.md
@@ -190,6 +190,7 @@ As such, all the meaningful words in the input should be highlighted:
 - Values provided by users (such as the number of the atoms following `ATOMS=`) will be highlighted with a different color
   (`String` in VIM).
 - Comments (see \ref comments) will be highlighted as comments (`Comment` in VIM).
+- String `__FILL__` (extensively used in tutorials to indicate parts to be completed) is highlighted (`Todo` in VIM).
 
 If you see something that is not highlighted and appears in black, this is likely going to result in an error at runtime.
 Think of this as a sort of preliminary spell-check.
diff --git a/vim/vimsyntax.sh b/vim/vimsyntax.sh
index d5a6714b11d117709bd123509d29ce2f2ed3af0f..6b3418ec6a67227582b3f93480bcbac6d59a7a50 100755
--- a/vim/vimsyntax.sh
+++ b/vim/vimsyntax.sh
@@ -216,13 +216,13 @@ for a in b:plumedActions
     elseif(b["menu"]=="(flag)")
       let string='"\v<' . b["word"] . '>"'
     endif
-    execute 'syntax match   plumedKeywords' . action_ . ' ' . string . ' contained contains=plumedStringInKeyword'
+    execute 'syntax match   plumedKeywords' . action_ . ' ' . string . ' contained contains=plumedStringInKeyword,plumedFillTodo'
   endfor
 
 " single line, with explicit LABEL
 " matching action at beginning of line, till the end of the line
 " can contain all the keywords associated with this action, plus strings, label, and comments
-execute 'syntax region plumedLine' . action_ . ' matchgroup=plumedAction' . action_ . ' start=/\v^\s*' . action . '>/ excludenl end=/$/ contains=plumedComment,plumedKeywords' . action_ . ',plumedLabel,plumedStringOneline fold'
+execute 'syntax region plumedLine' . action_ . ' matchgroup=plumedAction' . action_ . ' start=/\v^\s*' . action . '>/ excludenl end=/$/ contains=plumedComment,plumedKeywords' . action_ . ',plumedLabel,plumedStringOneline,plumedFillTodo fold'
 " multiple line, with explicit LABEL
 " first row might contain extra words before arriving at the dots
 " thus continuation dots are matched by plumedDots
@@ -230,12 +230,12 @@ execute 'syntax region plumedLine' . action_ . ' matchgroup=plumedAction' . acti
 " ends on dots, possibly followed by the same action name and possibly a comment
 " comments and initial dots are not part of the match
 " can contain all the keywords associated with this action, plus strings, label, and comments
-execute 'syntax region plumedCLine' . action_ . ' matchgroup=plumedAction' . action_ . ' start=/\v^\s*' . action . '>(.+\.\.\.\s*(#.*)*$)@=/ end=/\v^\s*\.\.\.(\s+' . action . ')?\s*((#.*)*$)@=/ contains=plumedComment,plumedKeywords' . action_ . ',plumedLabel,plumedString,plumedDots fold'
+execute 'syntax region plumedCLine' . action_ . ' matchgroup=plumedAction' . action_ . ' start=/\v^\s*' . action . '>(.+\.\.\.\s*(#.*)*$)@=/ end=/\v^\s*\.\.\.(\s+' . action . ')?\s*((#.*)*$)@=/ contains=plumedComment,plumedKeywords' . action_ . ',plumedLabel,plumedString,plumedDots,plumedFillTodo fold'
 " single line, with label: syntax
 " matching label followed by action
 " can contain all the keywords associated with this action, plus strings and comments
 " labels are not allwed
-execute 'syntax region plumedLLine' . action_ . ' matchgroup=plumedAction' . action_ . ' start=/\v^\s*[^ #@][^ #]*:\s+' . action . '/ excludenl end=/$/ contains=plumedComment,plumedKeywords' . action_ . ',plumedStringOneline fold'
+execute 'syntax region plumedLLine' . action_ . ' matchgroup=plumedAction' . action_ . ' start=/\v^\s*[^ #@][^ #]*:\s+' . action . '/ excludenl end=/$/ contains=plumedComment,plumedKeywords' . action_ . ',plumedStringOneline,plumedFillTodo fold'
 " multiple line, with label: syntax
 " first row might contain extra words before arriving at the dots
 " thus continuation dots are matched by plumedDots
@@ -243,7 +243,7 @@ execute 'syntax region plumedLLine' . action_ . ' matchgroup=plumedAction' . act
 " comments and dots are not part of the match
 " ends on dots, possibly followed by the same label and possibly a comment
 " comments and initial dots are not part of the match
-execute 'syntax region plumedLCLine' . action_ . ' matchgroup=plumedAction' . action_ . ' start=/\v^\s*\z([^ #@][^ #]*\:)\s+' . action . '>(.+\.\.\.\s*(#.*)*$)@=/ end=/\v^\s*\.\.\.(\s+\z1)?\s*((#.*)*$)@=/ contains=plumedComment,plumedKeywords' . action_ . ',plumedString,plumedDots fold'
+execute 'syntax region plumedLCLine' . action_ . ' matchgroup=plumedAction' . action_ . ' start=/\v^\s*\z([^ #@][^ #]*\:)\s+' . action . '>(.+\.\.\.\s*(#.*)*$)@=/ end=/\v^\s*\.\.\.(\s+\z1)?\s*((#.*)*$)@=/ contains=plumedComment,plumedKeywords' . action_ . ',plumedString,plumedDots,plumedFillTodo fold'
 " this is a hack required to match the ACTION when it is in the second line
 execute 'syntax match plumedSpecial' . action_ . ' /\v(\.\.\.\s*(#.*)*\_s*)@<=' . action . '>/ contained'
 execute 'highlight link plumedSpecial' . action_ . ' Type'
@@ -252,7 +252,7 @@ execute 'highlight link plumedSpecial' . action_ . ' Type'
 " matching label, dots, possibly comments, newline, then action name
 " comments, dots, and action are not part of the match
 " ends on dots possibly followed by the same label and possibly a comment
-execute 'syntax region plumedLCLine' . action_ . ' matchgroup=plumedAction' . action_ . ' start=/\v^\s*\z([^ #@][^ #]*\:)\s+(\.\.\.\s*(#.*)*\_s*' . action . ')@=/ end=/\v^\s*\.\.\.(\s+\z1)?\s*((#.*)*$)@=/ contains=plumedComment,plumedKeywords' . action_ . ',plumedString,plumedSpecial' . action_ . ',plumedDots fold'
+execute 'syntax region plumedLCLine' . action_ . ' matchgroup=plumedAction' . action_ . ' start=/\v^\s*\z([^ #@][^ #]*\:)\s+(\.\.\.\s*(#.*)*\_s*' . action . ')@=/ end=/\v^\s*\.\.\.(\s+\z1)?\s*((#.*)*$)@=/ contains=plumedComment,plumedKeywords' . action_ . ',plumedString,plumedSpecial' . action_ . ',plumedDots,plumedFillTodo fold'
 execute 'highlight link plumedAction' . action_ . ' Type'
 execute 'highlight link plumedKeywords' . action_ . ' Statement'
 endfor
@@ -266,13 +266,19 @@ syntax match   plumedStringInKeyword /\v(<[^ #]+\=)@<=[^ #]+/ contained
 highlight link plumedStringInKeyword String
 
 " Matching label
-syntax match   plumedLabel "\v<LABEL\=[^ #]*" contained contains=plumedLabelWrong
+syntax match   plumedLabel "\v<LABEL\=[^ #]*" contained contains=plumedLabelWrong,plumedFillTodo
 highlight link plumedLabel Type
 
 " Errors
 syntax match   plumedLabelWrong "\v<LABEL\=\@[^ #]*" contained
 highlight link plumedLabelWrong Error
 
+" Todo
+" This is used since the Trieste tutorials to indicate
+" parts that should be filled by the user
+syntax match   plumedFillTodo "__FILL__"
+highlight link plumedFillTodo Todo
+
 syntax region  plumedComment start="\v^\s*ENDPLUMED>" end="\%$" fold
 syntax match   plumedComment excludenl "\v#.*$"
 highlight link plumedComment Comment