解决vim/vi编辑文件出现Swap file "xxx" already exists!问题

一、问题描述

E325: ATTENTION
Found a swap file by the name "/etc/.profile.swp"
          owned by: root   dated: Mon Aug 19 21:46:01 2019
         file name: /etc/profile
          modified: no
         user name: root   host name: master
        process ID: 6143 (still running)
While opening file "/etc/profile"
             dated: Sat Aug 17 23:22:41 2019

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r /etc/profile"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file "/etc/.profile.swp"
    to avoid this message.

Swap file "/etc/.profile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:

二、问题原因

当我vim /etc/profile命令查看环境变量时,出现如上提示,解决如下:

仔细读一下提示Swap file "/etc/.profile.swp" already exists!可发现是因为:/etc/.profile.swp文件以存在

使用命令:rm -f  /etc/.profile.swp  

再次vim /etc/profile 就能正常进入了

其实vim编辑其他文件也出现类是情况的话,只需要进入对应的目录,删除.swp文件即可。

 

### 关于 NULL 的本质 NULL 是 C/C++ 中的一个特殊宏定义,在不同的编译环境下可能有不同的实现方式。其核心概念是指针类型的零值,用于表示空指针[^1]。 在标准 C 和 C++ 编程中,`NULL` 被定义为 `(void*)0` 或者简单的 `0` 值。这种设计使得它既可以作为整数也可以作为指针使用,具体行为依赖上下文环境。然而需要注意的是,尽管 `NULL` 表面上看起来像是普通的数值零,但它实际上是一个特殊的标记,用来指示某个指针未指向任何有效的内存位置[^2]。 如果尝试解引用一个值为 `NULL` 的指针,则会触发运行时错误——即所谓的“段错误”。这是因为程序试图访问操作系统保留的非法地址空间 (通常是 0 地址),而现代操作系统通过虚拟内存管理机制保护这些区域不被随意存取。 ### 解决 .bashrc.swp 文件冲突问题 关于 `.bashrc.swp` 文件冲突的问题,这通常发生在编辑器(如 Vim)意外终止或者崩溃之后留下的临时交换文件未能正常清理的情况下。这类情况不会直接影响到 `NULL` 宏的行为,但如果是在配置 Autodl 环境过程中遇到此现象,可以采取如下措施: - **手动删除残留交换文件** 如果确认当前目录下不存在正在使用的同名文件副本,可以直接移除该`.swp`文件以解除锁定状态: ```bash rm ~/.bashrc.swp ``` - **调整Vim设置防止频繁生成大尺寸swapfile** 修改个人vim初始化脚本(`~/.vimrc`)加入下面参数减少不必要的干扰: ```vim set directory=~/.vim/swap// set swapfile=false ``` 上述操作能够有效缓解因交换文件引发的各种潜在矛盾状况,并且与讨论中的`NULL`话题无直接关联影响关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值