답변:
vim의 경우 강력한 스크립팅이 가능합니다. 예를 들어 내 .vimrc에는 다음이 있습니다.
" 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>
#을 찾는 대신 파일 이름으로 만 수행하려면 #! 라인, 당신은 할 수 있습니다 :
au BufWritePost *.ext silent !chmod a+x <afile> " untested
즉, 데비안 관리에 대한 문서 뿐만 아니라 EMACS에 대한 지침이 있습니다.
derobert의 답변을 좋아하는 한 VIM은 다음과 같은 경고를 표시합니다.
W16 : 경고 : 편집이 시작된 후 "test.sh"파일의 모드가 변경되었습니다
다음 코드는이 문제를 해결합니다 (파이썬 가능 vim 필요).
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()
autoread
설정 한대로 경고가 표시되지 않습니다 .