diff --git a/config/nvim/UltiSnips/onelab.snippets b/config/nvim/UltiSnips/onelab.snippets
new file mode 100644
index 0000000000000000000000000000000000000000..82a762a389c664f45ff7eebda90e8c353fe4083c
--- /dev/null
+++ b/config/nvim/UltiSnips/onelab.snippets
@@ -0,0 +1,42 @@
+snippet dnum "DefineNumber"
+${1:id} = DefineNumber[${2:value}, Name "${3:name}"${4:, ${5:options}}];$0
+endsnippet
+
+snippet dstr "DefineString"
+${1:id} = DefineString["${2:value}", Name "${3:name}"${4:, ${5:options}}];$0
+endsnippet
+
+snippet dcst "DefineConstant"
+DefineConstant[ ${1:id} = {${2:value}, Name "${3:name}"${4:, ${5:options}}} ];$0
+endsnippet
+
+snippet dcsts "DefineConstants"
+DefineConstant[
+  ${1:id} = {${2:value}, Name "${3:name}"${4:, ${5:options}}}$0
+];
+endsnippet
+
+snippet cste "Constant Entry"
+${1:id} = {${2:value}, Name "${3:name}"${4:, ${5:options}}}$0
+endsnippet
+
+snippet cho "Choices"
+Choices {$0}
+endsnippet
+
+snippet snum "SetNumber"
+SetNumber[ "${1:name}", ${2:value} ];$0
+endsnippet
+
+snippet sstr "SetString"
+SetString[ "${1:name}", "${2:value}" ];$0
+endsnippet
+
+snippet gnum "GetNumber"
+GetNumber["${1:name}"];$0
+endsnippet
+
+snippet gstr "GetString"
+GetString["${1:name}"];$0
+endsnippet
+
diff --git a/config/nvim/init.vim b/config/nvim/init.vim
index f940bb788cb378a306d9acf22564fa9e87e8e747..d3dc49d9ddd628eabc5d27bf4dcae2e42d37387c 100644
--- a/config/nvim/init.vim
+++ b/config/nvim/init.vim
@@ -337,7 +337,13 @@ nnoremap <leader>de :call vimspector#Reset()<CR>
 """""""""" ultisnips
 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
+" snippets editing buffer opens in horizontal split
 let g:UltiSnipsEditSplit = 'horizontal'
 
-" snippets pro.snippets > cpp.snippets
-autocmd BufNewFile,BufReadPost *.pro UltiSnipsAddFiletypes pro.cpp
+" .pro (getDP) snippets priority : pro > onelab > all (discard any others)
+autocmd BufNewFile,BufReadPost *.pro UltiSnipsAddFiletypes pro.onelab
+autocmd BufNewFile,BufReadPost *.pro UltiSnipsAddFiletypes onelab.all
+
+" .geo (gmsh)  snippets priority : geo > onelab > all (discard any others)
+autocmd BufNewFile,BufReadPost *.geo UltiSnipsAddFiletypes geo.onelab
+autocmd BufNewFile,BufReadPost *.geo UltiSnipsAddFiletypes onelab.all