vim使用(2)vim 的保存文件、恢复与打开

本文介绍了在使用Vim编辑器时如何利用暂存文件(.filename.swp)进行文件内容的恢复。当Vim因故中断时,这些暂存文件能够帮助用户找回未保存的工作。文章还详细解释了在遇到暂存文件时Vim提供的几种处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在使用vim编辑时,vim会在被编辑的文件的目录下面在新建一个名为.filename.swp 的暂存文件,对文件的操作会被记录到暂存文件中,如果因为某些原因导致编辑的文件没有被保存系统就断线了,我们可以用这个暂存文件发挥救援的功能。

当vim工作被不正常中断,此时暂存文件会被保留下来,但是如果此时继续编辑那个文件,会弹出警告信息。

这里写图片描述

这里可以看到找到了文件 man.config 的暂存文件 man.config.swp

此时vim会主动判断这个文件可能有问题,上面的提示中主要有两点主要的问题与解决方法

一 其他人或程序同时在线编辑这个文件

  1. 由于Linux是多人多工的环境,因此很可能有很多人同时在编辑同一个档案。如果在多人共同编辑的情况下,万一大家同时储存,那么这个档案的内容将会变的乱七八糟!为了避免这个问题,因此vim会出现这个警告视窗!解决的方法则是:
    a) 找到另外那个程式或人员,请他将该vim 的工作结束,然后你再继续处理。
    b) 如果你只是要看该档案的内容并不会有任何修改编辑的行为,那么可以选择开启成为唯读(O)档案,亦即上述画面反白部分输入英文『 o 』即可,其实就是[O ]pen Read-Only的选项啦!

二:在前一个vim的环境中,可能因为某些不知名原因导致vim中断(crashed)

这就是常见的不正常结束vim产生的后果。解决方案依据不同的情况而不同喔!常见的处理方法为:

如果你之前的vim处理动作尚未储存,此时你应该要按下『R』,亦即使用(R)ecover的项目,此时vim会载入.man_db.conf.swp的内容,让你自己来决定要不要储存!这样就能够救回来你之前未储存的工作。不过那个.man_db.conf.swp并不会在你结束vim后自动删除,所以你离开vim后还得要自行删除.man_db.conf.swp才能避免每次打开这个档案都会出现这样的警告!

如果你确定这个暂存档是没有用的,那么你可以直接按下『D』删除掉这个暂存档,亦即(D)elete it 这个项目即可。此时vim 会载入man_db.conf ,并且将旧的.man_db.conf.swp 删除后,建立这次会使用的新的.man_db.conf.swp 喔!

按键说明

至于这个发现暂存档警告讯息的画面中,有出现六个可用按钮,各按钮的说明如下:

[O]pen Read-Only:打开此档案成为只读档,可以用在你只是想要查阅该档案内容并不想要进行编辑行为时。一般来说,在上课时,如果你是登入到同学的电脑去看他的设定档,结果发现其实同学他自己也在编辑时,可以使用这个模式;

(E)dit anyway:还是用正常的方式打开你要编辑的那个档案,并不会载入暂存档的内容。不过很容易出现两个使用者互相改变对方的档案等问题!不好不好!

(R)ecover:就是载入暂存档的内容,用在你要救回之前未储存的工作。不过当你救回来并且储存离开vim后,还是要手动自行删除那个暂存档喔!

(D)elete it:你确定那个暂存档是无用的!那么开启档案前会先将这个暂存档删除!这个动作其实是比较常做的!因为你可能不确定这个暂存档是怎么来的,所以就删除掉他吧!哈哈!

(Q)uit:按下q就离开vim ,不会进行任何动作回到命令提示字元。

(A)bort:忽略这个编辑行为,感觉上与quit非常类似!也会送你回到命令提示字元就是啰!

<think>我们正在回答用户关于Vim保存文件的问题。用户明确询问“vim编辑文件后如何保存”,因此我们需要聚焦于保存操作。 根据引用[1]和[2]的内容,保存并退出Vim的基本步骤是: 1. 按ESC键退出编辑模式(进入命令模式) 2. 输入冒号(:)进入命令模式 3. 输入wq(write and quit)然后回车 同时,引用[2]还提供了其他保存相关命令,如:w(只保存不退出)、:w!(强制保存)等。 因此,回答应包含: - 保存并退出的基本命令::wq - 其他相关保存命令(可选) - 注意前提:必须先按ESC退出编辑模式 另外,用户提到“修改文件后”,所以我们要强调保存修改的操作。 注意:用户可能是在学习过程中,所以步骤要清晰。 回答结构: 1. 简要说明Vim的模式切换(因为保存操作必须在命令模式下进行) 2. 详细步骤(按ESC,然后输入命令) 3. 常用保存命令列表(重点突出:wq) 4. 可能遇到的问题(比如权限不足,需要sudo保存) 同时,根据引用[4],我们还可以补充一些高级操作(如全选复制等),但用户问题集中在保存,所以作为补充即可。 最后,生成相关问题。 注意:用户引用了多个来源,我们需要在回答中适当标注引用(在相关步骤后添加引用标记,如[^2])。</think>### Vim编辑器保存文件的完整指南 在Vim保存文件需要理解其三种模式切换机制。以下是详细操作步骤: #### 保存文件的核心步骤 1. **退出编辑模式** 编辑完成后,按`Esc`键退出插入模式(此时左下角"INSERT"标识消失)[^1][^2]。 2. **进入命令模式** 确保光标在命令行位置(按`Esc`后自动进入命令模式)。 3. **执行保存命令** - **保存并退出**:输入`:wq` 后按回车(最常用)[^1][^2] - **仅保存不退出**:输入`:w` 后按回车(继续编辑)[^2] - **强制保存(管理员权限)**:输入`:w!` 后按回车(需sudo权限)[^2] ```mermaid graph LR A[编辑完成] --> B[按 Esc 键] B --> C{选择操作} C --> D[输入 :wq 保存退出] C --> E[输入 :w 保存继续编辑] C --> F[输入 :q! 放弃修改退出] ``` #### 常见场景处理 - **忘记保存直接关闭**: 重新打开文件会提示恢复选项,输入`:wq`可保存恢复内容 - **权限不足**: 使用`sudo vim 文件名`打开文件保存时输入`:wq!`[^2] - **查看保存结果**: 终端执行`cat 文件名`验证修改内容[^2] #### 高级保存技巧 1. **部分保存**: `:10,20w newfile.txt` 将第10-20行保存为新文件 2. **另存为**: `:w newfilename` 保存为不同文件名 3. **多文件保存**: `:wa` 保存所有打开文件缓冲区 > **关键提示**:所有保存命令都必须在命令模式下执行(按`Esc`退出编辑模式后)[^1][^3]。如果输入命令无反应,请确认左下角是否有`-- INSERT --`提示,如有则需再次按`Esc`。 #### 保存失败排查 | 问题现象 | 解决方案 | |----------|----------| | 输入`:wq`无反应 | 检查是否在命令模式(按两次`Esc`) | | "E212: Can't open file" | 使用`sudo vim 文件`或`:w!`强制保存 | | 保存后内容丢失 | 确认磁盘空间`df -h`,使用`:w newfile`另存 | | 中文乱码 | 保存时添加编码`:set fileencoding=utf-8` |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值