oeasy教您玩转vim - 61- # 编辑过程
编辑过程
回忆上次
vi可以加各种参数vi +4 oeasy.txtvi +/shiyanlouvi +%s/shiyanlou/oeasy/g oeasy.txt
vi可以接收stdin的参数ls -lah | vi -
vi还有各种模式- 命令行模式
ex oeasy.txt或者vi -e oeasy.txt - 只读模式
vi -R oeasy.txt或者view oeasy.txt
- 命令行模式

- 如果加一个
-r的参数可以么 - 帮助手册说的
swap是什么意思?
查看手册
- 什么不会查什么
- 我们进入
vim查询:h swap - 看到编辑文件的过程

编辑过程
- 进入
Code文件夹 直接打开
vi- 并输入一些字符
- 这个时候所有的编辑内容都在
内存 - 如果
vim进程结束,什么都会消失
w oeasy.txt- 把内存里面的东西放进硬盘
- 然后
继续编辑 - 修改后的内容首先保存在内存
- 然后被写入一个
oeasy.txt的swap替换文件
可以
:sw- 看到这个替换文件的名字
- 叫做
.oeasy.txt.swp - 开头的
.意味着 此文件为隐藏文件 - 中间是
oeasy.txt原始文件的名字 - 后面是
.swp意味着是swap替换文件

恢复文件
- 我们可以直接结束
terminal - 然后再开一个
terminal - 运行
ls -lah *oeasy* - 可以看到两个文件

- 一个是最初
:w时保存的文件 - 另一个是在内存自动保存的
.swp交换文件
再次打开

- 我们运行
vi oeasy.txt 可以选择
- O 只读
E 直接编辑,忽略
.oeasy.txt.swp- 如果这个时候继续编辑
- 新的
swp替换文件,命名为swo - 是降序的一个规律
- 直到
ssa - 可以通过
:sw看到 - 也可以
ls -lah看到
R 直接读取
.oeasy.txt.swp并打开- 这个时候进去之后,
:w才把swap文件存储于oeasy.txt
- 这个时候进去之后,
D 删除交换文件
- 这个要小心,直接就把交换文件删掉了
- Q 退出
- A 终止

恢复文件
恢复文件可以有很多方法
vi oeasy.txt时选择Recover- 或者
vi -r oeasy.txt 或者
E进入原始文件之后运行命令:rec- 如果当前文件有修改
- 运行之后要求保存当前位置文件
:w保存文件后,并不会把修改保存到.swp文件中- 如果有多个
swp交换文件会让你选 - 注意修改日期

另存与追加
另存
:saveas oeasy.txt- 当前buffer另存为其他文件

追加
:w >> o2z.txt- 把当前buffer追加写入其他文件
使用专门文件夹
- 默认替换文件都在源文件同一文件夹
可以重新设置一个新文件夹吗?
:set dir=/temp/vim

配置专门的替换文件夹有什么好处吗?
- 放在不同的硬盘,防灾
- 减少对于原始文件的文件夹进行污染
- 可以写在
~/.vimrc中,每次都自动设置
更多细节
:nos(wapfile)- 可以让当前文件不用
swap文件
- 可以让当前文件不用
swap文件更新的触发条件更新文字数
:set updatecount=300- 如果编辑文字达到
updatecount - 就会更新
swap文件 - 默认是
200
更新间隔时间
:set updatetime=10- 如果编辑文字时长达到
updatetime - 就会更新
swap文件 - 默认是
4000毫秒
:preserver强行更新swap文件

设置备份
vim一般没有产生备份文件如果你想要有个备份文件
:set backup

备份文件名
- 备份的缺省文件默认是在文件名后面加~
- oeasy.txt~就是备份文件
如果你想要设置备份文件的扩展名
:set backupext=.bak

备份位置
- 默认就在原地备份
如果你想指定一个位置
:set backupdir=/tmp/backup- 如果无法生成备份文件是因为没有文件夹
!mkdir /tmp/backup

写备份
设置
写备份writebackup- 如果
:set nobackup - 并且
:set writebackup - vim也会备份一个备份文件
- 但是只要你对源文件
:w了之后 - 备份就会消失
- 主要是怕写的过程中源文件消失
- 如果
- 目前这些都可以通过 版本控制工具
git来解决
总结
- 我们这次了解了编辑过程
默认有一个替换文件swap
修改的内容会保存到一个
swap文件- 如果
swp已经存在 - 会有个
swo文件 - 以此类推
- 如果
- 替换文件可以进行对源文件的修复
- 没保存到源文件的可能保存到了替换文件
- 可以统一设置替换文件的位置
可以控制保存替换文件的触发条件
- 字符数
- 时间长度
- 手动触发
还可以设置备份文件
- 备份文件backup
- 写备份文件writebackup
- 其实我们更常见的是另存为命令进行备份
- 目前
vim都是打开单一文件 vim可以打开两个文件吗?- 下次再说
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 vim_Linux - 蓝桥云课)
oeasy教您玩转vim - 61- # 编辑过程的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- Azure Service Principals ----- Azure 上最好保守的秘密的服务
一,引言 Azure Service Principals 是 Azure Active Directory (AAD) 中的一种标识,代表应用程序,服务,自动化流程.Service Principa ...
- Windows Server 2022 初始设置
添加本地用户 添加新的本地用户. 在CUI配置上,按如下方式设置. 使用管理员权限运行 PowerShell 并按如下方式进行配置. Windows PowerShell 版权所由 (C) Micro ...
- 微信小程序预约视频号直播
一.概述 微信小程序提供了可以唤起预约视频号直播弹窗的接口 reserveChannelsLive,该接口接收一个参数 noticeId,通过 getChannelsLiveNoticeInfo 接口 ...
- 『手撕Vue-CLI』拉取版本号
开篇 在上一篇文章中,给 nue-cli 添加了与用户终端交互的功能,这一次来实现一个拉取版本号的功能. 这个功能的背景是,有时候我们在使用脚手架的时候,不同版本的脚手架可能会有不同的功能,所以用户有 ...
- NOIP模拟95(多校28)
T1 嗑瓜子 解题思路 \(f_{i,j}\) 表示操作 \(i\) 次,拿走了 \(j\) 个瓜子的概率,转移就比较直接了: \[f_{i+1,j+1}\leftarrow f_{i,j}\time ...
- uniapp 复选框全选(基于colorui组件)
说明:本案例的样式基于colorui组件库 感兴趣的小伙伴可以看下教程 colorui组件库开发文档或者csdn的文档,顺便再分享下 colorui的群资源 html <checkbox-gro ...
- python-将多个表格的信息合并到一个表格中
1.环境 代码运行环境:python3.7 相关的库:xlrd.xlwt 2.目的 通过xlrd库读取各个表格的数据,通过xlwt库将读取到的数据写入到一个表格中. 3.实现 在工程目录下,有一个te ...
- webpack js兼容处理
webpack在不需要引入任何loader可以对于js进行打包处理,但是它不会对于js兼容性进行任务的处理,而我们编写的项目是需要在不同的浏览器中运行的,此时就需要对于js的兼容性在打包过程中进行对应 ...
- SpringBoot系列(六)如何使用 MockMvc 或者 RestTemplate 发请求进行单元测试
本文主要功能: 对最简单的/hello接口,如何编写单元测试用例. 1.首先,要引入以下依赖 <dependency> <groupId>org.springframework ...
- Ubuntu Server LTS 修改网卡ip地址、固定IP
Ubuntu Server LTS 修改网卡ip地址方式.固定IP. 18.04 之前版本通过修改/etc/network/interfaces 方式,18.04 版本开始通过netplan 方式: ...