Do not set/clear the executable bit if it's already set/clear.
endif
checktime
let fname = expand("%:p")
+ let fx = executable(fname)
execute "au FileChangedShell " . fname . " :echo"
- if a:x
- silent !chmod a+x %
- else
- silent !chmod a-x %
+ if a:x && !fx
+ !chmod a+x %
+ elseif !a:x && fx
+ !chmod a-x %
endif
if v:shell_error
echoerr 'Error running chmod: ' . v:shell_error
endfunction
command! Xbit if executable(expand("%:p")) | call SetExecutableBit(0) | else | call SetExecutableBit(1) | endif
+
" ----------
" From http://slobin.pp.ru/vim/_vimrc.html