无法创建备份文件(添加!覆盖)

时间:2011-12-08 08:33:56

标签: linux bash vi

需要帮助。我一直在vi中编辑一个文本文件,我之前能够保存更改,但现在我在输入命令保存文件时遇到上述错误。请帮忙。

10 个答案:

答案 0 :(得分:32)

您可以vi(或者,更有可能是vim)强制执行写作:

:w!

或者,将文件写入备用位置:

:w! /path/to/other/location

要检查备份文件的写入位置(通常):

:se backup? backupdir? backupext? 

尝试touch该目录中的文件,看看您的操作系统是否给您一个错误,告诉您编辑器无法在那里写的原因。

答案 1 :(得分:8)

有同样的问题。这是因为我以root身份安装了vimconf。您需要更改〜/ .vim目录中的文件权限,并将所有者更改为您的用户。

sudo chmod 0750 ~/.vim
sudo chown user ~/.vim

答案 2 :(得分:4)

我有同样的问题。事实证明这是由于磁盘空间不足。尝试使用Ex)touch test.txt创建文件。如果您收到消息touch: cannot touch test.txt: No space left on device,则需要清理磁盘空间

答案 3 :(得分:2)

从vi中,尝试:

:w!

:help w!提供以下信息:

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

答案 4 :(得分:2)

有同样的问题。尝试了上述所有选项,但它没有奏效。然后当我检查我的磁盘空间时,它已满。一旦我清理了一些空间,我就可以再次写回文件了 P.S:这是在linux中。

答案 5 :(得分:2)

我已通过以下方式解决此问题:

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

其中“用户”是您的用户名。

答案 6 :(得分:1)

可以在.vimrc中指定备份位置,例如:

set backupdir=~/.vim/backup

您可能需要自己创建此目录。

答案 7 :(得分:0)

另一种可能性是您将备份放在集中位置(例如/ tmp),并以root身份编辑特定文件。然后,备份文件将由root拥有,并且您以后只能作为凡人不可写。

在这种情况下,上面触摸/ tmp / atestfile的建议不会显示问题!你有写权限,没有问题,但没有vim试图写的特定备份文件。

以root身份删除文件(sudo rm)。

注意原因w!工作是因为vim在没有编写备份文件的情况下写入文件(尽管有错误,你还是坚持要写它。)

答案 8 :(得分:0)

我不知道原因是什么,但我在.vimrc中从backupdir移到.~/.vim/backups,它为我解决了这个问题:

set backupdir=~/.vim/backups

我想某种工具正在使用我正在编辑它的文件夹(Visual Studio 2013,在我的例子中),但我不确定。

答案 9 :(得分:0)

  

就我而言,我的磁盘已满。

这里有一些命令可以验证这一点并找到将磁盘空间占用的位置。就我而言,这是超过20GB的PHP日志。

namespace App\Http\Controllers;


use App\Service;

use Illuminate\Http\Request;


class ServiceController extends Controller
{

    public function landpage(){

        $services=Service::with('cat')->get();


        return view('services.index',compact('services'));
    }

    public function detail($id){

        $services=service::with('cat')->findOrFail($id);

        return view('service_detail.index',compact('services'));

    }
}