编辑过程

回忆上次

  • 我们这次了解了编辑过程
  • 默认有一个替换文件swap

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

      • 如果swp已经存在
      • 会有个swo文件
      • 以此类推
    • 替换文件可以进行对源文件的修复
    • 没保存到源文件的可能保存到了替换文件
    • 可以统一设置替换文件的位置
    • 可以控制保存替换文件的触发条件

      • 字符数
      • 时间长度
      • 手动触发
  • 还可以设置备份文件

    • 备份文件backup
    • 写备份文件writebackup
  • 其实我们更常见的是另存为命令进行备份
  • 目前 vim 都是打开单一文件
  • vim可以打开两个文件吗?

查看手册

  • man vim

    • 可以看到vim可以有多个参数
    • terminal里面直接运行

      • vim oeasy.txt o2z.txt
    • 这样就会打开两个文件
  • 每一个打开的文件是一个buffer缓冲区

    • 可以在vim中用:buffers查看到目前打开的文件
    • 可以:h buffers查看手册

上下切换缓存buffers

  • :buffers 可以查看所有缓冲

    • :ls也可以查看所有缓冲
    • 注意不是 :!ls
    • !是执行外部命令ls
  • 可以查看手册:h :ls

    • 可以通过:bn[ext],选择下一个buffer
    • 可以通过:bprev[ious],选择上一个buffer
    • 也可以通过:bN[ext],选择上一个bufer

打开指定缓存buffer

  • 可以用b[uffer]1b2 直接切入指定的 buffer
  • 也可以用文件名,比如b[uffer] oeasy.txt
  • 可以用bf[irst],打开第一个buffer
  • 可以用bl[ast],打开最后一个buffer
  • 你可以尝试复制粘贴一些内容

    • 然后跨文件进行复制粘贴操作
    • 并回忆一下多寄存器的复制粘贴

buffers细节

  • 可以在打开帮助手册的情况下,:ls!,看到不在缓冲列表的缓冲

    • + 有修改未保存内容
    • - 可修改标签关闭
    • = 只读缓冲区
    • a 活跃缓冲区,当前的缓存区
    • u 没有在列表里面的缓冲区
    • h 隐藏缓冲区
    • x 有读取错误的缓冲区
    • % 当前缓冲区
    • #swap替换 文件的缓冲区

强制跳转buffer

  • 当我想跳转的时候,如果当前文件没有保存,他会不允许跳转

    • 只能先:w保存
    • 然后再跳转
    • 也可以用:wn

      • write
      • next
  • 如果我想强行跳转

    • :b!2
    • 这样当前文件没有直接保存到硬盘里,但swap中有
    • 如果想:b2的时候自动保存
    • 需要:set autowrite
    • 可以:h autowrite查看手册
  • 也可以不保存强行退出当前buffer

    • :q!
  • 甚至不保存强行退出所有buffer

    • :qall!
    • 也可以保存所有未保存的文件:wall
    • 全部保存并退出:wqall
  • 回忆一下上次提到的

    • :saveas oeasy.txt
    • :w >> o2z.txt

hidden的作用

  • terminalvim 两个文件ab

    • vim a b
    • a里面进行了修改
    • 如果这个时候我想:b2切到第2buffer
    • 他会提示我要保存当前这个a
  • 如果设置了:set hidden,这个可以直接切换

    • a存在于swap已经修改
    • 还没w的状态
    • 注意这个和autowrite不同
    • :set autowrite`

      • 切换的时候自动保存
  • :ls可以看到两个都有+(未保存标记)

    • aactive
    • hhidden
  • 这个时候就:wall

    • 可以把这两个一起保存

跨文件跳转

  • :marks 可以看到各种 mark标记

  • `"是上次光标离开此缓存buffer时候的位置
  • `.是上次编辑此缓存buffer发生的位置
  • 也可以用大写字母定义跨文件标记

    • mA 定义标记
    • "A 跳转到标记

跳转列表

  • 在你跳来跳去的时候
  • 形成了一个跳转列表

    • :jump
  • 可以来回来去跳跃

    • CTRL+O 上一个
    • CTRL+I 下一个

  • 如果我想在不同的buffer中使用不同的参数,应该怎么做呢?

本地开关

  • setlocal 本地开关
  • :set ruler

    • 全局的标尺开关打开
  • :setlocal ruler

    • 只打开当前buffer的ruler

总结

  • 我们这次了解了缓冲区buffer
  • ls可以查看buffer,如下是buffer缓冲的一些flag

    • + 有修改未保存内容
    • - 可修改标签关闭
    • = 只读缓冲区
    • a 活跃缓冲区
    • u 没有在列表里面的缓冲区
    • h 隐藏缓冲区
    • x 有读取错误的缓冲区
    • % 当前缓冲区
    • #swap替换文件的缓冲区
  • 可以在buffer跳转

    • 可以通过bn[ext],选择下一个buffer
    • 可以用b[uffer1]b2进入指定的 buffer
    • 也可以用文件名,比如b[uffer] oeasy.txt
    • 可以用bf[irst],打开第一个buffer
    • 可以用bl[ast],打开最后一个buffer
  • 不保存也可以跳转

    • 设置 hidden
  • 跳转的时候自动保存

    • 设置 autowrite
  • 可以用大写字母设置跨文件标记mark

    • mA 添加标记
    • 'A 跳转到标记
  • 关于强行跳转和保存退出

    • 强制退出当前窗口 :q!
    • 不保存强行退出所有buffer :qall!
    • 保存所有未保存的文件:wall
    • 全部保存并退出:wqall
  • vim中打开的两个文件缓存buffer
  • 可以放到两个窗口里面同时查看吗?
  • 下次再说

[Github地址] (https://github.com/overmind1980/oeasyvim)

[Gitee地址] (overmind1980/oeasyvim)

[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 vim_Linux - 蓝桥云课)

oeasy教您玩转vim - 62 - # 缓冲buffer的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  9. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  10. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. c++ 记一次把qrencode源码生成动态库的尝试

    在网上搜二维码库:qrencode,源码下载:https://github.com/fukuchi/libqrencode 我的是windows环境,IDE是vs2022. 建立一个动态库的空工程. ...

  2. layui 无限级多级菜单

    layui 二级菜单 :https://gitee.com/hslr/layui_extension_modulemenu 我更改了下,变成了无线级菜单 layui.define('element', ...

  3. .NET集成DeveloperSharp实现http网络请求&与其它工具的比较

    爆了,爆了,DeveloperSharp系列近期又被制造业ERP.民航飞行App.建筑BIM.电力掌上营业厅.等多家大型采用,站在巨人的肩膀上你能走的更远. 支持.Net Core2.0及以上,支持. ...

  4. django中的多表关联

    一.三种关联情况 二.ORM的正向操作和反向操作 1.正向操作: 一个模型中定义了一个外键,通过该模型对该外键操作的操作叫做正向操作. 2.反向操作: 被外键所关联的模型,通过该模型对外键所在模型的操 ...

  5. iNeuOS工业互联网操作系统,增加电力IEC104协议

    1.      概述... 2 2.      配置IEC104协议设备驱动... 2 1.   概述 IEC60870-5-104 是一种电力自动化系统中常用的通信协议,使用 TCP/IP 协议作为 ...

  6. 微软官方开源免费的Blazor UI组件库 - Fluent UI Blazor

    前言 今天大姚给大家分享一个由微软官方开源(MIT License).免费的Blazor UI组件库:Fluent UI Blazor. 全面的ASP.NET Core Blazor简介和快速入门 F ...

  7. containerd 源码分析:创建 container(三)

    文接 containerd 源码分析:创建 container(二) 1.2.2.2 启动 task 上节介绍了创建 task,task 创建之后将返回 response 给 ctr.接着,ctr 调 ...

  8. 算法金 | 读者问了个关于深度学习卷积神经网络(CNN)核心概念的问题

    ​大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 读者问了个关于卷积神经网络核心概念的问题,如下, [问]神经元.权重.激活函数.参数 ...

  9. THUWC 2024 游记

    其实这个游记也没啥好写的-- day 0 上午做动车两个小时到重庆,路上玩了 1.5h 的星露谷. 下午去巴蜀中学报道试机,系统是 Ubuntu Jammy,大大的好评,只是桌面是 Xubuntu/X ...

  10. 【二分答案】P2390 地标访问

    \(\color{black}\text{P2390 地标访问 (传送门)}\) 学过区间 DP 的,看到这题的第一反应都是:访问的地标一定是一个区间,并且在不断扩大,区间 DP!可看到数据范围,又瞬 ...