Linux CentOS7 vim临时文件

在vim中,由于断网、停电、故意退出、不小心关闭终端等多种原因,正在编辑的文件没有保存,系统将会为文件保存一个交换文件,或称临时文件,或备份文件。

如果因某种原因产生了交换文件,每次打开文件时,都会提示用户作一定的选择。按提示,录入大写的单字母,就可以进入相应的状态。

交换文件是一种文件保护机制,有重要作用。有时会带来一定困惑,但恰当处理,很容易解决。本文作一初步介绍与讨论。

由于正确使用vim不会产生交换文件,没有意外情况出现,很难看到交换文件。为此,我们特意由强制断开xshell来创建交换文件。实际工作中,可能不会出现(一般新手使用vim不熟练,会多次产生。而操作熟练后,将很难产生了)。

一、创建交换文件

1.编辑文件

为了说明问题,我们在远程终端,以zhangsan用户登录,在/home/zhangsan目录下,用vim编辑一个文件swp_test.txt,录入部分内容后,保存。

列表查看文件信息:

2.创建一个交换文件

为了创建一个交换文件,我们可以这样操作:用vim打开文件,在最后一行添加一部分内容,不保存,断开终端。重新连接终端,切换到家目录,查看文件,就会发现一个交换文件。

a.重新打开文件

        vim swp_test.txt

b.修改文件

3.断开连接

我们不保存文件,直接断开xshell连接

4.重新连接

选择xshell文件,选择“重新连接”

5.查看文件

        ls -Alrt

6.打开文件

我们再次用vim打开文件swp_test.txt

        vim swp_test.txt

将出现交换文件提示,选择最后一行中任意一项(直接按大写字母),进行下一步操作:

        O  以只读方式打开:文件不允许编辑,不能保存(可以另存,但成为了另一个文件)

        E  直接编辑:文件以原来保存的内容显示,可以重新修改、编辑(交换文件仍存在)

        R  恢复:文件以交换文件保存的内容显示,可以重新修改、编辑(交换文件仍存在)

        D  删除交换文件:交换文件删除后不再存在

        Q  退出:查看此信息后,不作处理,退出vim编辑

        A  中止:与Q类似,退出vim

为了更多验证交换文件,我们选择Q,退出vim。

二、创建第二个交换文件

我们重新创建一个xshell连接,以root用户登录,切换到/home/zhangsan目录下,用vim再次编辑文件swp_test.txt。

1.登录后切换目录

登录成功后,我们先切换到zhangsan家目录。

2.查看文件信息

  执行命令ls  -al

可以看到交换文件的存在。

3.选择直接编辑

我们选择E,直接编辑原文件。

在显示的文件内容中,可以看到是原来的文件,没有第一次修改后的任何信息。

我们再次录入部分内容后,不保存

4.再次断开与连接xshell

        a.断开xshell

        b.重新连接xshell

        c.切换目录并查看

(1)通过ls命令查看交换文件

(2)通过vim  –r查看交换文件

由查看交换文件信息,可知:

a.交换文件后缀名有变化:从.swp到.swo,再有交换文件,将是.swn .swm..等等

b.每个交换文件信息中都有交换文件的保存时间,都有原文件名,不同的进程号等

5.以交换文件为基础编辑文件

可以执行命令:

        vim –r .swp_test.txt.swo

可以在.swp_test.txt.swo基础上编辑文件swp_test.txt

按enter后:

不作其他修改,保存退出。

再次查看文件信息:

        ls -Alrt

因为没有删除交换的操作,两个交换文件仍存在。

三、创建第三个交换文件

我们重新创建一个xshell连接,以lisi用户登录(lisi用户是root组的用户,相当于指定管理员),用vim再次编辑/home/zhangsan目录下文件swp_test.txt。

1.编辑文件

我们选择E,录入部分内容后,不保存。

2.断开与重连xshell

为了创建新的交换文件,我们断开xshell,并重新连接。

再次查看交换文件信息:

3.选择R

使用命令,再次编辑文件

        sudo vim /home/shangsaan/swp_test.txt

选择D,删除交换文件后,显示原文件内容。

保存后,退出。

再次查看交换文件信息:

当我们再次打开文件时,没有了交换文件提示,可以直接编辑文件了。

注意:此时仍然存在两个交换文件,我们仍然可以用某一个交换文件作为起点,修改原文件。

        sudo vim -r /home/zhangsan/.swp_test.txt.swn

效果如下:

对于没有用的、过时的交换文件,可以删除。命令简单,不作展示。

如果文件没有交换文件,用vim –r选项,将有如下提示,按任意键继续即退出vim编辑。

小结

本文讨论了交换文件产生的原因,处理方法及相关信息查询。有几点需要说明:1.交换文件是系统对文件的一种保护机制,并非多余。2.当同一文件,有多个交换文件时,交换文件后缀名有变化,可以推算出是第几个交换文件。3.可以在用vim编辑文件时,加上-r选项,有交换文件时会有说明,没有交换文件时,会退出vim。4.可以有多种方法删除交换文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/145699.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ffmpeg、ffplay在线安装,离线导出整个程序,移植到其他服务器使用(linux系统)

环境说明 以ubuntu系统作为说明 在线安装 下面命令会同时安装ffplay和ffmpeg sudo apt-get install ffmpeg怎么验证安装成功? 输入ffmpeg命令 ffmpeg,如图则说明安装成功 转储可执行程序和依赖的文件 找到安装路径,一般在/usr/bin目录…

idea Springboot 教师标识管理系统开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 教师标识管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统 具有完整的源代码和数据库&…

Codeforces Round 894 (Div. 3) D(数学题好难不会)

题目链接:Codeforces Round 894 (Div. 3) D 题目: 特马决定提高自己制作冰淇淋的技能。他已经学会了如何用两个球把冰淇淋做成圆锥形。 在痴迷冰淇淋之前,特马对数学很感兴趣。因此,他很想知道要制作完全n个不同类型的冰淇淋&am…

唤醒手腕 2023年 B 站课程 Golang 语言详细教程笔记(更新中)

0001、1000集GO语言Flag毒誓 唤醒手腕UP猪Pig目标花费1000集进行讲解Go语言视频学习教程(有趣的灵魂,适合小白,不适合巨佬),从2023年3月19日开始,将会一直每天更新,准备在2024年5月1日之前更新…

【C语言】文件操作(二)

前言: 在文件操作(一)中我们了解了文件及文件指针,还有文件的打开和关闭。在这篇博客我们学习顺序读写文件的几个函数。 文章目录 一、文件的顺序读写1.1 顺序读写函数介绍 fgetc 字符输入函数 fputc 字符输出函数fgets 文本行输…

Android studio升级Giraffe | 2022.3.1 Patch 1踩坑

这里写自定义目录标题 not "opens java.io" to unnamed module错误报错信息解决 superclass access check failed: class butterknife.compiler.ButterKnifeProcessor$RScanner报错报错信息解决 Android studio升级Giraffe | 2022.3.1 Patch 1后,出现项目…

web:[极客大挑战 2019]PHP

题目 点进页面显示如下 根据页面提示,这个网站有备份文件,备份文件一般是bak文件格式,用dirsearch扫描 访问之后下载了一个文件 里面都是一些代码 在index.php中发现了一个类的文件,一个get传参,然后将传进的值进行反序…

【数据结构】树的概念理解和性质推导(保姆级详解,小白必看系列)

目录 一、前言 🍎 为什么要学习非线性结构 ---- 树(Tree) 💦 线性结构的优缺点 💦 优化方案 ----- 树(Tree) 💦 树的讲解流程 二、树的概念及结构 🍐 树的概念 &…

QCefView 简介

什么是QCefView QCefView 是为 Qt 开发的一个封装集成了CEF(Chromium Embedded Framework)库的Wdiget UI组件。使用QCefView可以充分发挥CEF丰富强大的Web能力,快速开发混合架构的应用程序。它不需要开发者理解CEF的细节,能够在Qt中更容易的使用CEF&…

NLP 项目:维基百科文章爬虫和分类 - 语料库阅读器

塞巴斯蒂安 一、说明 自然语言处理是机器学习和人工智能的一个迷人领域。这篇博客文章启动了一个具体的 NLP 项目,涉及使用维基百科文章进行聚类、分类和知识提取。灵感和一般方法源自《Applied Text Analysis with Python》一书。 在接下来的文章中,我将…

Android 编译插桩操纵字节码

本文讲解如何编译插桩操纵字节码。 就使用 ASM 来实现简单的编译插桩效果,通过插桩实现在每一个 Activity 打开时输出相应的 log 日志。实现思路 过程主要包含两步: 1、遍历项目中所有的 .class 文件​ 如何找到项目中编译生成的所有 .class 文件&#…

初识多线程

一、多任务 现实中太多这样同时做多件事的例子了,例如一边吃饭一遍刷视频,看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只做了一件事情。 二、普通方法调用和多线程 普通方法调用只有主线程一条执行路径 多线程多条执行路径…

xPortPendSVHandler任务切换流程

__asm void xPortPendSVHandler( void ) { extern uxCriticalNesting; extern pxCurrentTCB; extern vTaskSwitchContext; PRESERVE8 mrs r0, psp isb//指令同步命令, ldr r3, pxCurrentTCB /* Get the location of the current TCB. */ ldr r2, [r3]//r2保存…

【面试经典150 | 矩阵】螺旋矩阵

文章目录 写在前面Tag题目来源题目解读解题思路方法一:模拟方法二:按层模拟 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于…

flink选择slot

flink选择slot 在这个类里修改 package org.apache.flink.runtime.resourcemanager.slotmanager.SlotManagerImpl; findMatchingSlot(resourceProfile):找到满足要求的slot(负责从哪个taskmanager中获取slot)对应上图第8,9&…

[vue-admin-template实战笔记]

1.克隆项目 git clone gitgitee.com:panjiachen/vue-admin-template.git 2.安装依赖 npm install 3.运行项目就会自动打开网页,并且热部署插件 npm run dev 4.查看代码 //将vue-admin-template拖入到idea中即可查看代码 1)并且发现,常用的东西已经集…

从零手搓一个【消息队列】创建核心类, 数据库设计与实现

文章目录 一、创建核心类1, 交换机2, 交换机类型3, 队列4, 绑定5, 交换机转发 & 绑定规则6, 消息7, 消息属性 二、数据库设计1, 使用 SQLite2, 使用 MyBatis2.1, 创建 Interface2.2, 创建 xml 文件 三、硬盘管理 -- 数据库1, 创建 DataBaseManager 类2, init() 初始化数据库…

什么是AI客流量算法?如何应用在实际场景中?

客流量分析算法简而言之就是一种利用数据分析和机器学习技术进行人流量统计、预测和分析的算法。它能够根据不同的数据来源,如摄像头、传感器等,对特定区域内的客流量进行实时监测和分析,并通过对历史数据的综合分析,提供客流趋势…

ARM-day2

1、1到100累加 .text .global _start_start:MOV r0, #1ADD r1,r0, #1fun:ADD r0,r0,r1ADD r1,r1, #1cmp r1, #0x65moveq PC,LRbl funstop:b stop.end2、思维导图

Java基础---第十篇

系列文章目录 文章目录 系列文章目录一、说说Java 中 IO 流二、 Java IO与 NIO的区别(补充)三、java反射的作用于原理一、说说Java 中 IO 流 Java 中 IO 流分为几种? 按照流的流向分,可以分为输入流和输出流; 按照操作单元划分,可以划分为字节流和字符流; 按照流的角色…