oeasy教您玩转vim - 62 - # 缓冲buffer
编辑过程
回忆上次
- 我们这次了解了编辑过程
默认有一个替换文件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]1
、b2
直接切入指定的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的作用
在
terminal
中vim
两个文件a
、b
vim a b
- 在
a
里面进行了修改 - 如果这个时候我想
:b2
切到第2
个buffer
- 他会提示我要保存当前这个
a
如果设置了
:set hidden
,这个可以直接切换a
存在于swap
已经修改- 还没
w
的状态 - 注意这个和
autowrite
不同 :set autowrite`
- 切换的时候自动保存
:ls
可以看到两个都有+
(未保存标记)a
是active
h
是hidden
这个时候就
: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的更多相关文章
- 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内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- pod(四):pod的重启策略和生命周期
目录 一.系统环境 二.前言 三.pod的重启策略 四.pod的生命周期 一.系统环境 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架构 CentOS Linux ...
- Winform 动态画曲线 波峰波谷识别
项目需要识别数组的波峰波谷,我就想 可视化的测试自己的判断波峰波谷的算法,于是就有了下面这张图. 我就用gdi+再panel上描点,点画完后,就点击分析按钮蓝色的为波峰 绿色的为波谷.虽然说能识别出来 ...
- Servlet转发与重定向的资源路径问题解析
一. 问题引入 转发和重定向可以说是Servlet中最重要的知识点也不为过,因为它决定着整个向Servlet体系中,执行流程的问题. 转发: request.getRequestDispat ...
- 『手撕Vue-CLI』拉取模板名称
前言 好,经过上篇文章的介绍,已经可以有处理不同指令的能力了,接下来我们就来处理 vue create 指令,这个指令的本质就是从网络上下载提前准备好的模板,然后再自动安装模板中相关依赖. 所以实现 ...
- 抖音越狱版本App下载
一.准备下载越狱版本抖音App 一般下载越狱版本App要不从越狱手机上Crack 正版App,另外一种从PP助手或者越狱市场进行下载,这里选择第二种方式 感谢 http://iosre.com/t/p ...
- 网页CSS源码
EntryTag { margin-top:20px; font-size:9pt; color:gray } .topicListFooter { text-align:right; margin- ...
- 使用nvm安装以及管理多版本node教程
安装nvm.node.npm 下载nvm安装包,推荐使用1.1.7,我个人使用1.1.8会有中文乱码的报错 点击exe文件,注意修改nvm的安装根目录以及node的安装根目录,后者是以后管理多版本no ...
- css3 浏览器前缀 线型渐变 过渡属性
css3:没有形成正式版 每个浏览器商,为了能对css3属性形成一个更好的支持,浏览器形成自己一套语法规范,一些css属性,如果想在浏览器上形成支持,有时候需要添加浏览器前缀 谷歌前缀:-webkit ...
- linux系统下,配置多个tomcat服务
安装jdk时配置的环境变量 export JAVA_HOME=/usr/local/jdk1.8.0_311 export JRE_HOME=$JAVA_HOME/jre export PATH=$P ...
- 小米 红米 Redmi MIUI 5G开关
小米 红米 Redmi MIUI 5G开关 1.打开手机拨号界面输入 *#*#54638#*#* 之后拨号界面底部会显示display 5G network menu (显示5G网络菜单) 注意:先是 ...