Vim for Windowsで読み取り専用ファイルを保存するにはどうすればよいですか?


8

私はこれをすでに多く探してきましたが、すべての答えはLinuxでのVimに関するものです。WindowsでVimから読み取り専用ファイルを直接保存する方法はありますか?

回答:


11

他のvi / vimバージョンと同様に:w!、読み取り専用プロパティをオーバーライドする権限がある限り、を使用して書き込みを強制できます。

たとえば、ファイルを読み取り専用に設定した場合、上記は機能します。Windows自体または管理者が読み取り専用に設定している場合は、別のオプションが必要になります。

@ dash-tom-bangがコメントしたように、1つの良い例がProgram Files内にあり、ファイルはデフォルトで保護されています。このMicrosoftナレッジベースの記事では、それが実際にどのように機能するかについて説明しています。


私のアカウントは管理者として設定されていますが、機能し:w!ていません。それは読むためにファイルを開くことができないと言います。vimの外でもまったく同じことができますが。
Durga Swaroop、2016

1
@DurgaSwaroop:gvimとして開いてみましたRun as Administratorか?多分それはあなたの目的を解決するでしょう...またはそうでなければ、ファイルが別のアプリケーションによってロックされている可能性があります...
Cylian

1
@DurgaSwaroop:親プロセスは、run as administrator実行する管理タスクを含むサブプロセスを完了する必要があります... windows.microsoft.com/en-in/windows/…を参照してくださいUAC。それ以外の場合は、設定を無効にしてください... 。
Cylian

1
たとえば、Program Files階層内のファイルの編集:w!は機能せず、管理者としてgVimを実行するか、管理者として実行されたコマンドプロンプトでVimを実行する必要があります。
ダッシュ

1
@ dash-tom-bangに感謝します。その良い例への参照を私の回答に追加しました。
rolinger

2

私のSudoEditプラグインを使用できます。


これはWindowsで正しく動作しますか?Readmeファイルには、おそらくそうではないと書かれています。
Durga Swaroop、2016

私のテストからそれはそうするべきです。しかし、私はWindowsをあまり使用していません。そのためのフィードバックを受け取ったことがありません。それがreadmeの理由です。また、使用する方法によっても異なります。
Christian Brabandt 2016

2

他の回答では対処されていない可能性がもう1つあります。vimは、別のWindowsアプリケーションによって開かれてロックされている場合、ファイルの保存を拒否します。多くの通常のWindowsアプリ(Officeなど)は、開いているファイルをロックします。これが問題である場合、権限や:wをいじる必要はありません。手伝います。他のアプリでファイルを閉じるだけで、vimからファイルを保存できます。vimがこの状況をユーザーに明確に知らせていないのは残念です。


0

win7の場合:[スタート]> [実行]> [コマンド(管理者として)]を実行し、次のコマンドを実行して、管理者がディレクトリツリーを書き込み可能にします。

cd parent/folder

:: /f file, /a admin,  /r recurse, /d y = nopromt
takeown /F . /A /R /D Y > nul:

:: /t /q /c .. traverse quiet continue
icacls . /t /q /c /reset
icacls . /t /q /c /grant    :r Everyone:F
icacls . /t /q /c /setowner Administrators 

0

スタートメニューのgVimショートカットを右クリックするか、キーボードのショートカットShift+ を使用して、管理者としてF10 gVimを実行し、[管理者として実行 ]を選択します

編集するファイルを開き、:w通常どおり変更を保存します。


-1

:f "newfilename"次に、コマンドモードで入力して:w、新しいファイル名で保存するために離れます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.