Windows上でgVimを使うと、Cygwinで見た時ファイルのパーミッションが変えられてしまう件
最近は基本的に、PHPの編集はgVimを使うことが多いです。http://www.kaoriya.net/ のWindows用のgVimです。7.1が出てますね。
で、SVNはTortoiseSVN・・・ではなくて、CygwinのSVNを使ってます。趣味の問題で、vimの方はCygwinのvimじゃないんですよね。
で、前から気になってたんですが。Cygwin上で、chmodとかで実行フラグを落としても、gVimで編集すると勝手にパーミッションが変わって755とかにされてしまってたんです。さらに他のaclも変えられてしまうのか、例えばApacheが作成したYakiBikiのデータファイル、これを一度gVimで読んで、弄って保存すると、Apacheから読めなくなってしまうんです。これ、結構嵌められました。
なんでかなーと思って、ようやく重い腰を上げてGoogleに聞いてみたんですが。
7.3. When I save a file with Vim, the file permissions are changed.
http://vimdoc.sourceforge.net/htmldoc/vimfaq.html
How do I configure Vim to save a file without changing the file
permissions?
に有るように、
set backupcopy=yes
とすれば良いらしいですね。
試してみたところ、これだけで問題は解決しました。自分の_gvimrcではbackup*系はこんな感じの設定になりました。
set nobackup set backupcopy=yes
うーん、"nobackup"にしてあるけどどうよ?ってな感じですが、これは前から入ってた行です。下の行が今回付け足したんですが、本当にこれだけでオッケーでした。
そう言えば、以前SELinux関連の記事を読んでいた時、「selinuxはi-nodeでファイルのラベリングをしている。古いvimだと、保存した時に古いi-nodeを消し、新しいi-nodeでファイルを作り直そうとする為、相性が云々」とか言っていたのを思い出したりします。今はどうなっているのかは知りませんが、なるほどなー、という感じでした。