Vim 如何让新建的文件保存后自动地有执行权限

Vim、Emacs配置和使用
回复
wz520
帖子: 36
注册时间: 2010-09-23 13:47
送出感谢: 0
接收感谢: 4 次

Vim 如何让新建的文件保存后自动地有执行权限

#1

帖子 wz520 » 2010-12-28 12:05

每次建个 shell 或 python 脚本都要手动 chmod 755 xxx,能不能让它自动完成?仅限新文件保存时。

也许是个菜鸟问题,请各位不吝赐教,谢谢~ :em01
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
送出感谢: 3 次
接收感谢: 68 次
联系:

Re: Vim 如何让新建的文件保存后自动地有执行权限

#2

帖子 lainme » 2010-12-28 13:22

配置autocmd?

代码: 全选

autocmd BufWritePre *.sh,*.py 
    \let curfile=expand("%:p") |
    \if ! filereadable(curfile) |
    \   exec "w \n silent !chmod +x ".curfile." &\n redraw!"|
    \endif
参考:
http://vimcdoc.sourceforge.net/doc/auto ... utocmd.txt
http://vimcdoc.sourceforge.net/doc/usr_ ... usr_41.txt
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: Vim 如何让新建的文件保存后自动地有执行权限

#3

帖子 lilydjwg » 2010-12-28 14:01

[vim]
" 自动加执行权限[[[2
function Lilydjwg_chmodx()
if strpart(getline(1), 0, 2) == '#!'
let f = expand("%:p")
if stridx(getfperm(f), 'x') != 2
call system("chmod +x ".shellescape(f))
" 重新载入,FIXME 不会重新检测文件类型
edit!
syntax on
endif
endif
endfunction
autocmd BufWritePost * call Lilydjwg_chmodx()
[/vim]

你们怎么就是不先看看我的vimrc呢?
wz520
帖子: 36
注册时间: 2010-09-23 13:47
送出感谢: 0
接收感谢: 4 次

Re: Vim 如何让新建的文件保存后自动地有执行权限

#4

帖子 wz520 » 2010-12-29 18:03

参照 lilydjwg 的脚本改了一下达到目的了,感谢2位的解答。看来要好好地看一下autocmd :em01
回复

回到 “Vim和Emacs”