Linux CentOS7 vim多文件与多窗口操作
窗口是可视化的分割区域。Windows中窗口的概念与linux中基本相同。连接xshell就是在Windows中新建一个窗口。而vim打开一个文件默认创建一个窗口。同时,Vim打开一个文件也就会建立一个缓冲区,打开多个文件就会创建多个缓冲区。
本文讨论vim中打开多个文件与多个窗口情况下,如何操作。
对于vim多文件的编辑与操作,可以参考《Linux CentOS7 vim多文件编辑》。
对于vim多窗口编辑,可以参考《Linux CentOS7 vim多窗口编辑》。
一、创建多个窗口
我们用vim打开文件时,默认是打开一个文件,一个窗口。我们首先讨论如何打开多个文件和多个窗口。
1.一次打开多个窗口
在用vim打开文件时,可以添加选项,设置打开多少文件,多少窗口。其中,-on可以指定上下排列n个窗口,而-On可以指定左右排列n个窗口。o是英语单词open的首字母;n是一个整数,指定打开窗口的数量。
a.多个窗口与一个文件
基本格式
vim -on file 上下排列
vim -On file 左右排列
案例
vim -o3 create_win
效果
打开上下排列的三个窗口,只有一个窗口中打开一个文件

b.窗口数与文件数一致
基本格式
vim -on file1 file2…filen 上下排列
vim -On file1 file2…filen 左右排列
案例
vim -o3 demo.txt demo_1 demo1.txt
效果
打开上下排列的三个窗口,每个窗口中打开一个文件

案例
vim -O4 demo.txt demo_1 test1.txt test2.txt
效果
打开左右排列的三个窗口,每个窗口中打开一个文件

c.文件多于窗口数
一般格式
vim -o3 file1 file2 file3 file4 上下排列
vim -O3 file1 file2 file3 file4 左右排列
案例
vim -O3 demo.txt demo_1 test1.txt test2.txt
效果
打开三个窗口,每个窗口有一个文件;因为命令是打开4个文件,故有一个文件隐藏,不能显示

d.窗口多于文件数
一般格式
vim -o4 file1 file2 file3 上下排列
vim -O4 file1 file2 file3 左右排列
案例
vim -o4 demo.txt demo_1 test1.txt
效果
打开四个窗口,前3个窗口都有一个文件;因为命令是打开四个窗口,故多出一个窗口,是空白,没有打开文件
2.逐步打开多个窗口
我们先打开一个文件(或多个文件),单一窗口。在底行模式下,运用命令增加窗口。可以多次重复操作打开任意多窗口。
操作目标
打开三个文件,分布在三个窗口中!
a.先打开一个窗口
vim file1 file2 file3
案例
vim demo.txt for1.sh test1.sh
效果
打开窗口后,利用命令buffers查看打开文件列表

b.再创建一个新窗口
在当前窗口,有三类命令创建新的窗口,功能相同,可根据爱好使用。
sp/vs [files]
new/vnew [files]
ctrl+w+s/v
案例
我们应用:vs for1.sh命令在当前窗口的左侧新建一个窗口,且打开文件for1.sh

c.继续创建新窗口
在前述方法的基础上,可以创建需要的窗口。
案例
使用new test1.sh 在当前窗口的上方再创建一个新窗口,同时打开文件test1.sh

由此类方法创建的窗口,与一次创建多个窗口不同,可以设计多个窗口的排列位置。
二、窗口内文件处理
关于窗口大小的调整及位置的变化,我们不作讨论,可以参考前述文章《Linux CentOS7 vim多窗口编辑》。
我们关注在当前窗口中,如何添加文件、切换文件、查看文件等操作。后续讨论窗口间的文件复制与粘贴。
1.添加文件
在窗口中再添加新的文件,或打开文件,有多种方法。可根据习惯选择合适的。
a.o[pen]
底行模式下,录入命令
:o file
后跟文件名,将打开该文件。如果该文件在当前目录下存在,将打开;如果文件不存在,将新建该文件。(如o后面不加文件名,将会打开当前文件,相当于没有变化)。

b.e[dit]
底行模式下,录入命令
:e file
后跟文件名,将打开该文件。如果该文件在当前目录下存在,将打开;如果文件不存在,将新建该文件。
前两个添加或打开文件的命令,是打开后即可以编辑。
c.badd
底行模式下,录入命令
:badd file
后跟文件名,将打开该文件。如果该文件在当前目录下存在,将打开;如果文件不存在,将新建该文件。
该命令是添加一个文件到缓冲区内,并不进行编辑。与前两个添加或打开文件的命令完全不同。
如果该命令添加的文件在其他窗口中打开,执行该命令将没有效果。

利用ls命令查看缓冲区存在的文件

2.查看文件
在当前窗口的底行模式下,可以用命令查看缓冲区存在的文件,也可以用快捷键循环查看存在的文件。
a.命令查看
底行模式下,可以用命令ls、files和buffers任意一个查看缓冲区存在的文件。如下图:

在文件列表中,第一列,是文件编号,可以在底行模式下使用该编号。如果有文件被删除,编号将会不连续。
第二列,有多种符号同,代表不同的含义,其中最常用的是%a表示正在编辑的文件;#是前一个编辑的文件。
第三列,是文件名。
第四列,表示光标所处的行数。如是第0行,表示文件未被编辑过。

b.快捷键循环查看
底行模式下,可以用命令:b 再按Tab键,循环查看缓冲区存在的文件。如下图:

再按一次Tab键,显示2号文件for1.sh…
如果显示某一文件后,按回车确认键,将在当前窗口中打开此文件。
在使用b命令时,如果b后没有空格,直接按Tab键,将浏览以b开头的命令:
如:bNext badd ball…
如果显示某一命令后,按回车确认键,将执行该命令。
如执行ball,将按文件数打开窗口,每个窗口一个文件:

c.隐藏文件
底行模式下,录入命令
:hide
该文件将隐藏,同时,在多窗口情况下,将关闭该窗口。
3.切换文件
:b+next b+n n [n];激活列表中的下一个文件,n后面有文件名时,激活该文件
:b+previous b+p;激活列表中的前一个文件
:b+f b+l 激活列表中的第一个和最后一个文件
:b+# 激活最近访问的文件
:bulffer+编号;:b+编号;:buffer+文件名;:b+文件名;激活相应编号的文件
给窗口重命名也是一种重新打开文件的方式:
:f file
如果文件存在,将打开文件;文件不存在,将新建文件。
4.删除文件
删除文件是在当前窗口中的底行模式下,利用bd命令删除缓冲区的文件。
:bd[elete] 删除当前正在编辑的文件
:bd n/file
d是delete的首字母,执行bdelete与bd命令一样。
n是缓冲区文件的编号,如:bd 2 将删除2号文件;
file是缓冲区的文件名,如:bd demo.txt 将删除demo.txt文件。
5.关闭文件
关闭窗口不是退出缓冲区的文件,而是不在当前窗口显示。如退出某一窗口的文件,该窗口将自动关闭。
有4种关闭窗口的方式,分别是:离开(quit)、关闭(close)、隐藏(hide)、关闭其他窗口。
^代表Ctrl键
^Wq 离开当前窗口
^Wc 关闭当前的窗口
^Wo 关闭当前窗口以外的所有窗口
quit 离开当前窗口
exit 退出当前窗口
q 或close #关闭当前窗口
only #保留当前窗口,关闭其它所有窗口
qall(qa) #退出所有窗口
wall #保存所有窗口
6.浏览文件
在多窗口情况下,可以执行命令浏览当前目录下的所有文件。此功能不常用,仅供参考。
:ex 开启目录浏览器,可以浏览当前目录下的所有文件,并可以选择
:Sex 水平分割当前窗口,并在一个窗口中开启目录浏览器,此命令与前述ex基本一样。S是split的首字母,水平分隔窗口。
:Vex 垂直分割当前窗口,并在窗口中开启目录浏览器

三、窗口间文件操作
光标所在的窗口,称为当前窗口。通过快捷键可以切换到需要的窗口。
1.当前窗口命令模式下的复制
命令模式下:
yy 复制当前行
dd 删除当前行
切换窗口,仍在命令模式下:
p 在当前行后粘贴
P在当前行前粘贴
2.当前窗口编辑模式下的复制
可用鼠标选择多行内容或字符,按ctrl+insert复制
切换窗口,仍在编辑模式下:
按shift+insert复制
3.当前窗口底行模式下的删除或复制
在当前窗口底行模式下,录入:
2,4d #将删除2-4行内容,内容存入无名寄存器
切换窗口,仍在底行模式下:
录入:
put
无名寄存器内容将粘贴到当前行的后面
切换到命令模式下:
按p,无名寄存器内容将粘贴到当前行的后面
按P,无名寄存器内容将粘贴到当前行的前面
相关文章:
Linux CentOS7 vim多文件与多窗口操作
窗口是可视化的分割区域。Windows中窗口的概念与linux中基本相同。连接xshell就是在Windows中新建一个窗口。而vim打开一个文件默认创建一个窗口。同时,Vim打开一个文件也就会建立一个缓冲区,打开多个文件就会创建多个缓冲区。 本文讨论vim中打开多个文…...
SPI 通信协议
1. SPI通信 1. 什么是SPI通信协议 2. SPI的通信过程 在一开始会先把发送缓冲器的数据(8位)。一次性放到移位寄存器里。 移位寄存器会一位一位发送出去。但是要先放到锁存器里。然后从机来读取。从机的过程也一样。当移位寄存器的数据全部发送完。其实…...
【图像处理】使用各向异性滤波器和分割图像处理从MRI图像检测脑肿瘤(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
5个适合初学者的初级网络安全工作,网络安全就业必看
前言 网络安全涉及保护计算机系统、网络和数据免受未经授权的访问、破坏和盗窃 - 防止数字活动和数据访问的中断 - 同时也保护用户的资产和隐私。鉴于公共事业、医疗保健、金融以及联邦政府等行业的网络犯罪攻击不断升级,对网络专业人员的需求很高,这并…...
Kafka核心原理
1、Topic的分片和副本机制 分片作用: 解决单台节点容量有限的问题,节点多,效率提升,吞吐量提升。通过分片,将一个大的容器分解为多个小的容器,分布在不同的节点上,从而实现分布式存储。 分片…...
探秘前后端开发世界:猫头虎带你穿梭编程的繁忙街区,解锁全栈之路
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
洛谷_分支循环
p2433 问题 5 甲列火车长 260 米,每秒行 12 米;乙列火车长220 米,每秒行 20 米,两车相向而行,从两车车头相遇时开始计时,多长时间后两车车尾相离?已知答案是整数。 计算方式:两车车…...
MySQL数据库入门到精通——进阶篇(3)
黑马程序员 MySQL数据库入门到精通——进阶篇(3) 1. 锁1.1 锁-介绍1.2 锁-全局锁1.3 锁-表级锁1.3.1 表级锁-表锁1.3.2 表级锁元数据锁( meta data lock,MDL)1.3.3 表级锁-意向锁1.3.4 表级锁意向锁测试 1.4 锁-行级锁1.4.1 行级锁-行锁1.4.2…...
Mind Map:大语言模型中的知识图谱提示激发思维图10.1+10.2
知识图谱提示激发思维图 摘要介绍相关工作方法第一步:证据图挖掘第二步:证据图聚合第三步:LLM Mind Map推理 实验实验设置医学问答长对话问题使用KG的部分知识生成深入分析 总结 摘要 LLM通常在吸收新知识的能力、generation of hallucinati…...
[引擎开发] 杂谈ue4中的Vulkan
接触Vulkan大概也有大半年,概述一下自己这段时间了解到的东西。本文实际上是杂谈性质而非综述性质,带有严重的主观认知,因此并没有那么严谨。 使用Vulkan会带来什么呢?简单来说就是对底层更好的控制。这意味着我们能够有更多的手段…...
docker--redis容器部署及地理空间API的使用示例-II
文章目录 Redis 地理位置类型API命令操作示例JAVA使用示例导入依赖RedisTemplate 操作GeoData示例CityInfo实体类Geo操作接口类Geo操作接口实现类SpringBoot测试类RedissonClient 操作GeoData示例docker–redis容器部署及与SpringBoot整合 docker–redis容器部署及地理空间API的…...
Vue中如何进行文件浏览与文件管理
Vue中的文件浏览与文件管理 文件浏览与文件管理是许多Web应用程序中常见的功能之一。在Vue.js中,您可以轻松地实现文件浏览和管理功能,使您的应用程序更具交互性和可用性。本文将向您展示如何使用Vue.js构建文件浏览器和文件管理功能,以及如…...
jenkins利用插件Active Choices Plug-in达到联动显示或隐藏参数,且参数值可修改
1. 添加组件 Active Choices Plug-in 如jenkins无法联网,可在以下两个地址中下载插件,然后放到/home/jenkins/.jenkins/plugin下面重启jenkins即可 Active Choices Active Choices | Jenkins plugin 2. 效果如下: sharding为空时…...
香蕉叶病害数据集
1.数据集 第一个文件夹为数据增强(旋转平移裁剪等操作)后的数据集 第二个文件夹为原始数据集 2.原始数据集 Cordana文件夹(162张照片) healthy文件夹(129张) Pestalotiopsis文件夹(173张照片&…...
天地无用 - 修改朋友圈的定位: 高德地图 + 爱思助手
1,电脑上打开高德地图网页版 高德地图 (amap.com) 2,网页最下一栏,点击“开放平台” 高德开放平台 | 高德地图API (amap.com) 3,在新网页中,需要登录高德账户才能操作。 可以使用手机号和验证码登录。 4,…...
AtCoder Beginner Contest 232(A-G)
A - QQ solver (atcoder.jp)直接按题意模拟即可。 B - Caesar Cipher (atcoder.jp)按题意模拟即可 C - Graph Isomorphism (atcoder.jp)按题意模拟即可 D - Weak Takahashi (atcoder.jp) 一个非常套路的网格dp E - Rook Path (atcoder.jp) (1)题意 有…...
计算机网络(第8版)-第5章 运输层
5.1 运输层协议概述 5.1.1 进程之间的通信 图5-1 中两个运输层之间有一个深色双向粗箭头,写明“运输层提供应用进程间的逻辑通信”。 图5-1 运输层为相互通信的应用进程提供了逻辑通信 5.1.2 运输层的两个主要协议 5.1.3 运输层的端口 请注意,这种…...
AtCoder Beginner Contest 231(D-F,H)
D - Neighbors (atcoder.jp) (1)题意 给出M组关系,问是否有一个排列,能表示A[i]和B[i]相邻 (2)思路 考虑如果有环,显然不能满足排列,因为排列中度数最多为2,若有超过2的显…...
【Python】map
map()函数是Python内置函数之一,它的主要作用是将一个函数应用于可迭代对象中的每个元素,并返回一个包含结果的迭代器。 map()函数的语法如下: map(function, iterable)function参数是一个函数,表示要应用于可迭代对象每个元素的…...
Swift 5.9 与 SwiftUI 5.0 中新 Observation 框架应用之深入浅出
0. 概览 Swift 5.9 一声炮响为我们带来全新的宏(Macro)机制,也同时带来了干霄凌云的 Observation 框架。 Observation 框架可以增强通用场景下的使用,也可以搭配 SwiftUI 5.0 而获得双剑合璧的更强威力。 在本篇博文,…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...

