vim: crear file con + x bit

¿Hay alguna forma de establecer +x bit en el script mientras se crea?

Por ejemplo, ejecuto:

 vim -some_option_to_make_file_executable script.sh 

y después de savelo puedo ejecutar el file sin ningún movimiento adicional.

PD. Puedo ejecutar chmod desde vim o incluso desde la console, pero esto es un poco molesto, porque vim sugiere volver a cargar el file. También es molesto escribir el command chmod todo el time. pps. Sería genial hacerlo en function de la extensión de file (no necesito el ejecutable .txt :-))

Solutions Collecting From Web of "vim: crear file con + x bit"

No recuerdo dónde encontré esto, pero uso lo siguiente en mi ~ / .vimrc

 " Set scripts to be executable from the shell au BufWritePost * if getline(1) =~ "^#!" | if getline(1) =~ "/bin/" | silent !chmod +x <afile> | endif | endif 

El command establece automáticamente el bit ejecutable si la primera línea comienza con "#!" o contiene "/ bin /".

Encontré este script en http://vim.wikia.com . No es una solución perfecta, pero aceptable, creo.

 function! SetExecutableBit() let fname = expand("%:p") checktime execute "au FileChangedShell " . fname . " :echo" silent !chmod a+x % checktime execute "au! FileChangedShell " . fname endfunction command! Xbit call SetExecutableBit() 

Ahora puede establecer el bit de ejecución con el command :Xbit . Todo el crédito a Max Ischenko en vim.wikia.com

Lo uso en MacVim Custom Version 8.0.648 (134)

 " if file is executable just exit au BufWritePost *.sh if FileExecutable("%") | if getline(1) =~ "^#!" | silent !chmod u+x % | endif | endif " Determines if file is already executable function! FileExecutable(fname) execute "silent! ! test -x" a:fname return v:shell_error endfunction 

La respuesta de tonymac dejó de funcionar para mí en algún momento (con VIM 7.4), y me dio el mismo problema que @StevieD. Modificarlo solucionó el problema:

 au BufWritePost * if getline(1) =~ "^#!" | if getline(1) =~ "/bin/" | silent execute "!chmod +x <afile>" | endif | endif 

Encontré la respuesta de https://bbs.archlinux.org/viewtopic.php?id=126304 , aunque @StevieD también dio la misma respuesta.