I have a vim script, which uses Unix type path separator as: "Prg: Expand snippets {{{! let s:plugin_dir=filter(split(&rtp, ','), 'v:val =~ "/vimf90"')[0] let s:templatedir=s:plugin_dir . '/templates/' function! Prog(arg) execute 'r ' . s:templatedir . a:arg . '.txt' %substitute#\[:EVAL:\]\(.\{-\}\)\[:END:\]#\=eval(submatch(1))#ge endfunction "}}} " I have never used Windows, so I was not aware that it may break in Windows. One of my users reported this issue: > The script works very well on Linux system, but when I try it on > Windows, it does not work with the following error: > > ================================================= > Error detected while processing > C:\User\Ki-Tae\vimfiles\plugged\vimf90\ftplugin\fortran_comp.vim: line > 102: E684: list index out of range: 0 E15: Invalid expression: > filter(split(&rtp, ','), 'v:val =~ "/vimf90"')[0] line 103: E121: > Undefined variable: s:plugin_dir E15: Invalid expression: s:plugin_dir > . '/templates/' > ================================================= Also, he was kind enough to send me back the solution as: > In Windows, forward slash should be backward slash, so the code should > be > > filter(split(&rtp, ','), 'v:val =~ "\vimf90"')[0] > > and > > s:plugin_dir . '\templates\' Which he claims to work for him. As far as I know, [vim should alter the path separators inherently][1]. But, clearly, this is not the case here. The complete code in question is available [here][2]. I will be grateful if someone kindly check this. I can't do that since I don't have any access to Windows. [1]: http://vim.1045645.n5.nabble.com/OS-agnostic-path-separator-td1187176.html [2]: https://github.com/rudrab/vimf90/blob/master/ftplugin/fortran_comp.vim