欢迎光临散文网 会员登陆 & 注册

oeasy教您玩转vim - 61- # 编辑过程

2021-11-09 14:52 作者:oeasy  | 我要投稿

编辑过程

回忆上次

  • vi可以加各种参数

    • vi +4 oeasy.txt

    • vi +/shiyanlou

    • vi +%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.txtswap替换文件

  • 可以:sw

    • 看到这个替换文件的名字

    • 叫做.oeasy.txt.swp

    • 开头的. 意味着 此文件为隐藏文件

    • 中间是 oeasy.txt 原始文件的名字

    • 后面是 .swp 意味着是 swap替换文件

恢复文件

  • 我们可以直接结束 terminal

  • 然后再开一个 terminal

  • 运行ls -lah *oeasy*

  • 可以看到两个文件

  • 一个是最初:w时保存的文件

  • 另一个是在内存自动保存的 .swp交换文件

再次打开

  • 我们运行vi oeasy.txt

  • 可以选择

    • 这个要小心,直接就把交换文件删掉了

    • 这个时候进去之后,:w才把swap文件存储于oeasy.txt

    • 如果这个时候继续编辑

    • 新的swp替换文件,命名为swo

    • 是降序的一个规律

    • 直到ssa

    • 可以通过:sw看到

    • 也可以ls -lah看到

    • O 只读

    • E 直接编辑,忽略.oeasy.txt.swp

    • R 直接读取.oeasy.txt.swp并打开

    • D 删除交换文件

    • Q 退出

    • A 终止

恢复文件

  • 恢复文件可以有很多方法

    • 如果当前文件有修改

    • 运行之后要求保存当前位置文件

    • :w保存文件后,并不会把修改保存到.swp文件中

    • 如果有多个swp交换文件会让你选

    • 注意修改日期

    • vi oeasy.txt时选择Recover

    • 或者vi -r oeasy.txt

    • 或者 E 进入原始文件之后运行命令 :rec

另存与追加

  • 另存

    • :saveas oeasy.txt

    • 当前buffer另存为其他文件

  • 追加

    • :w >> o2z.txt

    • 把当前buffer追加写入其他文件

使用专门文件夹

  • 默认替换文件都在源文件同一文件夹

  • 可以重新设置一个新文件夹吗?

    • :set dir=/temp/vim

  • 配置专门的替换文件夹有什么好处吗?

    • 放在不同的硬盘,防灾

    • 减少对于原始文件的文件夹进行污染

  • 可以写在~/.vimrc中,每次都自动设置

更多细节

  • :nos(wapfile)

    • 可以让当前文件不用swap文件

  • swap文件更新的触发条件

    • :set updatetime=10

    • 如果编辑文字时长达到 updatetime

    • 就会更新swap文件

    • 默认是 4000 毫秒

    • :set updatecount=300

    • 如果编辑文字达到 updatecount

    • 就会更新swap文件

    • 默认是200

    • 更新文字数

    • 更新间隔时间

    • :preserver强行更新swap文件

设置备份

  • vim 一般没有产生备份文件

  • 如果你想要有个备份文件

    • :set backup

  • 备份文件名

    • :set backupext=.bak

    • 备份的缺省文件默认是在文件名后面加~

    • oeasy.txt~就是备份文件

    • 如果你想要设置备份文件的扩展名

  • 备份位置

    • :set backupdir=/tmp/backup

    • 如果无法生成备份文件是因为没有文件夹

    • !mkdir /tmp/backup

    • 默认就在原地备份

    • 如果你想指定一个位置

写备份

  • 设置 写备份writebackup

    • 如果:set nobackup

    • 并且:set writebackup

    • vim也会备份一个备份文件

    • 但是只要你对源文件:w了之后

    • 备份就会消失

    • 主要是怕写的过程中源文件消失

  • 目前这些都可以通过  版本控制工具git 来解决

总结

  • 我们这次了解了编辑过程

  • 默认有一个替换文件swap

    • 字符数

    • 时间长度

    • 手动触发

    • 如果swp已经存在

    • 会有个swo文件

    • 以此类推

    • 修改的内容会保存到一个swap文件

    • 替换文件可以进行对源文件的修复

    • 没保存到源文件的可能保存到了替换文件

    • 可以统一设置替换文件的位置

    • 可以控制保存替换文件的触发条件

  • 还可以设置备份文件

    • 备份文件backup

    • 写备份文件writebackup

  • 其实我们更常见的是另存为命令进行备份

  • 目前 vim 都是打开单一文件

  • vim可以打开两个文件吗?🤔

  • 下次再说 *

[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)


oeasy教您玩转vim - 61- # 编辑过程的评论 (共 条)

分享到微博请遵守国家法律