" Define comment string setlocal commentstring=#\ %s " Enable automatic comment insertion setlocal formatoptions+=cro function! DockerfileReplaceInstruction(original, replacement) let syn = synIDtrans(synID(line("."), col(".") - 1, 0)) if syn != hlID("Comment") && syn != hlID("Constant") && strlen(getline(".")) == 0 let word = a:replacement else let word = a:original endif let g:UnduBuffer = a:original return word endfunction inoreabbr from =DockerfileReplaceInstruction("from", "FROM") inoreabbr maintainer =DockerfileReplaceInstruction("maintainer", "MAINTAINER") inoreabbr run =DockerfileReplaceInstruction("run", "RUN") inoreabbr cmd =DockerfileReplaceInstruction("cmd", "CMD") inoreabbr label =DockerfileReplaceInstruction("label", "LABEL") inoreabbr expose =DockerfileReplaceInstruction("expose", "EXPOSE") inoreabbr env =DockerfileReplaceInstruction("env", "ENV") inoreabbr add =DockerfileReplaceInstruction("add", "ADD") inoreabbr copy =DockerfileReplaceInstruction("copy", "COPY") inoreabbr entrypoint =DockerfileReplaceInstruction("entrypoint", "ENTRYPOINT") inoreabbr volume =DockerfileReplaceInstruction("volume", "VOLUME") inoreabbr user =DockerfileReplaceInstruction("user", "USER") inoreabbr workdir =DockerfileReplaceInstruction("workdir", "WORKDIR") inoreabbr arg =DockerfileReplaceInstruction("arg", "ARG") inoreabbr onbuild =DockerfileReplaceInstruction("onbuild", "ONBUILD") inoreabbr stopsignal =DockerfileReplaceInstruction("stopsignal", "STOPSIGNAL")