Comment définir automatiquement le bit exécutable pour un file particulier

Je veux que lorsque je crée un file particulier, supposons que je le crée dans l'éditeur vim, le file créé doit également get l'autorisation exécutable quand il est créé. Je veux ceci car je suis en train de créer des files python et je ne veux pas définir explicitement les permissions pour le file donc je veux un moyen de sorte que le bit exécutable est défini dès que je crée un file avec une extension particulière ou avec un éditeur particulier.

Pour vim, vous disposez de scripts performants. Par exemple, dans mon .vimrc, j'ai:

" Stolen from http://www.debian-administration.org/articles/571 " Sets +x on stuff starting with the magic shebang. au BufWritePost * if getline(1) =~ "^#!" | silent !chmod a+x <afile> 

Si vous voulez le faire par nom de file seulement, au lieu de chercher le #! ligne, vous pourriez faire:

 au BufWritePost *.ext silent !chmod a+x <afile> " untested 

Cet article sur l'administration Debian contient également des instructions pour EMACS.

Autant que j'aime la réponse de derobert , cela fait que VIM me donne l'avertissement suivant:

W16: Attention: le mode du file "test.sh" a changé depuis le début de l'édition

Le code suivant (un peu plus long) résout ce problème (nécessite un vim compatible Python):

 function! SetExecutableBit() python <<EOD import vim import os import stat filename = vim.current.buffer.name mode = os.stat(filename).st_mode os.chmod(filename, mode | stat.S_IXUSR) EOD endfunction autocmd BufWritePost * \ if getline(1) =~ "^#!" | call SetExecutableBit()