web-dev-qa-db-ja.com

バックアップファイルを作成できません(上書きするには!を追加)

助けが必要。テキストファイルをviで編集していて、以前に変更を保存できましたが、ファイルを保存するコマンドを入力するたびに上記のエラーが発生します。助けてください 。

30
Aditya

vi(または、より可能性が高いのは、vim)が書き込みを強制的に実行していることを示しているため、次のことを実行できます。

:w!

または、ファイルを別の場所に書き込みます。

:w! /path/to/other/location

バックアップファイルが書き込まれている場所を確認するには(通常):

:se backup? backupdir? backupext? 

そのディレクトリのファイルをtouchしてみて、オペレーティングシステムがエラーを表示して、エディターがそこに書き込めない理由を教えてくれるかどうかを確認してください。

34
Johnsyweb

同じ問題があった。 rootとしてvimconfをインストールしたからです。 〜/ .vimディレクトリ内のファイルの権限を変更し、所有者をユーザーに変更する必要があります。

Sudo chmod 0750 ~/.vim
Sudo chown user ~/.vim
8
Piotr Pęczek

私も同じ問題を抱えていました。ディスク領域が不足したことが原因であることが判明しました。 Ex)touch test.txtを使用してファイルを作成してみてください。 「touch: cannot touch test.txt: No space left on device」というメッセージが表示された場合は、ディスクの空き容量を増やす必要があります

4
Aaron Oommen

私はこれを修正しました:

Sudo chown user ~/.cache/vim/* -R 

ここで、「user」はユーザー名です。

同じ問題があった。上記のようにすべてのオプションを試しましたが、機能しませんでした。その後、ディスク容量を確認したところ、いっぱいになりました。スペースを空けたら、再びファイルに書き戻すことができました。
PS:これはLinuxにありました。

2
naamadheya

vi内から、以下を試してください。

:w!

:help w!は次の情報を提供します。

                                                       *:w!*
:[range]w[rite]! [++opt] {file}
                        Write the specified lines to {file}.  Overwrite an
                        existing file.
2
Fredrik Pihl

原因はわかりませんが、.vimrcでbackupdir.から~/.vim/backupsに移動すると、解決されました。

set backupdir=~/.vim/backups

私が編集しているファイル(私の場合はVisual Studio 2013)のフォルダーを何らかのツールが使用していたと思いますが、よくわかりません。

0
TankorSmash

私の場合、ディスクがいっぱいでした。

これを確認し、ディスク領域が使用されている場所を見つけるためのいくつかのコマンドを次に示します。私の場合、それはPHP 20GB以上のログでした。

# see general disk space usage
df -h

# see current file and directory disk space usage. You can go to / and work your way in
du -sh *
0
kintsukuroi

別の可能性として、バックアップを一元的な場所(/ tmpなど)に置き、特定のファイルをルートとして編集した可能性があります。その後、バックアップファイルはrootが所有し、後でユーザーが書き込むことはできなくなります。

この場合、/ tmp/atestfileをタッチする上記の提案では問題は表示されません!書き込み権限がありますが、問題ありませんが、vimが書き込みを試みている特定のバックアップファイルにはアクセスできません。

Root(Sudo rm)としてファイルを削除します。

理由はw!動作するのは、vimがバックアップファイルを書き込まずにファイルを書き込むためです(エラーにもかかわらず書き込みを主張しています)。

0
Greg Bell