当前位置: 首页 > news >正文

Vim多文件操作

Vim多文件编辑的实际意义在于它极大地提高了开发者在处理多个相关文件时的效率和便利性。在软件开发、文本编辑、代码审查、配置管理等场景中,经常需要同时打开和操作多个文件。Vim的多文件编辑功能使得这些任务变得更加直观和高效。

  1. 提高编码效率:在开发过程中,经常需要同时查看和编辑多个相关的源文件,如头文件和实现文件。Vim允许你轻松地同时打开这些文件,并在它们之间快速切换,无需每次都打开新的Vim实例或手动关闭当前文件。

  2. 方便代码审查:在代码审查或合并代码时,你可能需要同时查看修改前后的文件内容。Vim的多文件编辑功能使得你可以轻松地并排比较这些文件,或者在一个Vim实例中打开多个修订版本,以便快速审查更改。

  3. 配置文件管理:在系统或应用配置管理中,经常需要编辑多个配置文件。Vim的多文件编辑功能使得你可以同时打开并编辑这些文件,从而快速地在它们之间查找和替换相同的设置或选项。

  4. 编写文档:在编写包含多个部分的文档(如书籍、论文、技术手册等)时,Vim的多文件编辑功能允许你同时打开并编辑文档的各个章节,从而在保持整体文档结构的同时,轻松地在不同部分之间切换。

  5. 支持多窗口视图:Vim的多窗口(split和vsplit)功能允许你在一个Vim实例中同时查看多个文件的视图。这对于比较文件、复制粘贴代码片段或在不同文件之间快速引用非常有用。

  6. 利用缓冲区列表:Vim的缓冲区列表(通过:ls命令查看)记录了所有打开的文件。这使得你可以轻松地找到并切换回之前编辑过的文件,即使它们已经不在当前窗口中显示。

  7. 插件和扩展的支持:Vim的强大之处还在于其丰富的插件和扩展生态系统。许多插件都支持或增强了Vim的多文件编辑功能,提供了更多自定义和自动化的选项。

文章目录

    • 一. 打开多个文件
      • 1 Vim未启动时
      • 2 Vim已启动时
    • 二. 打开文件的高级用法
    • 三. 同时显示多个文件
      • 1 分割窗口
      • 2 查看缓存
    • 四. 在文件之间切换
      • 1 文件间切换
      • 2 窗格间切换
    • 五. 多文档编辑命令
    • 六. 多文件切换技巧

一. 打开多个文件

1 Vim未启动时

在终端里输入以下命令可以一次性打开多个文件:

vim file1 file2 ... filen

2 Vim已启动时

在Vim已经启动的情况下,可以通过以下命令打开新的文件:

  • :open file 或简写为 :o file(注意:标准Vim命令中更常用的是 :e
  • :e ../myFile.pl 打开指定路径下的文件

二. 打开文件的高级用法

  • vim 文档名 普通方式打开文档
  • vim +n 文档名 打开文档后,定位到第n行
  • 进入Vim界面后,使用 :e 文档名 打开另一个文档,可以在编辑一个文档的同时打开另一个文档

三. 同时显示多个文件

1 分割窗口

  • :split 或简写 :sp 水平分割窗口
  • :vsplit 或简写 :vsp 垂直分割窗口

2 查看缓存

  • :ls 显示当前打开的缓冲区(文件)列表

四. 在文件之间切换

1 文件间切换

  • Ctrl+6:bn 切换到下一个文件
  • :bp 切换到上一个文件
  • 注意:对于用(v)split在多个窗格中打开的文件,上述方法只会在当前窗格中切换不同的文件

2 窗格间切换

  • Ctrl+w+方向键Ctrl+w+h/j/k/l 切换到前/下/上/后一个窗格
  • Ctrl+ww 依次向后切换到下一个窗格

五. 多文档编辑命令

  • :n 编辑下一个文档
  • :2n 编辑下两个文档
  • :N 编辑上一个文档(注意:仅用于同时打开多个文档)
  • :e 文档名 在Vim中打开其他文档
  • :e#Ctrl+^ 编辑上一个文档,用于两个文档相互交换编辑
  • :files:buffers:ls 列出当前缓冲区中的所有文档
  • :b 文档名或编号 切换到指定编号或名称的文档
  • :fCtrl+g 显示当前正在编辑的文档名称
  • :f 檔名 改变当前编辑的文档名(注意:这里的“檔名”应为文件名,可能因地区习惯不同而有所差异)

六. 多文件切换技巧

  • 使用 :ls 查看当前打开的buffer(文件)
  • 使用 :b num 切换文件,其中num为buffer list中的编号

通过以上方法,你可以在Vim中高效地管理多个文件,提升你的编辑效率。

相关文章:

Vim多文件操作

Vim多文件编辑的实际意义在于它极大地提高了开发者在处理多个相关文件时的效率和便利性。在软件开发、文本编辑、代码审查、配置管理等场景中,经常需要同时打开和操作多个文件。Vim的多文件编辑功能使得这些任务变得更加直观和高效。 提高编码效率:在开发…...

【ARM+Codesys 客户案例 】 基于RK3568/A40i/STM32+CODESYS在智能制造中的应用案例:全自动切片机器人

蔬菜是人们日常生活必不可缺的食品,并且食用方法多种多样。自步入小康社会以来,人们的生活节奏越来越快,很多传统服务已不能满足人们的物质需求和生活节奏。日常生活中通过手工快速切菜严重地威胁着人身安全,切菜时间过长或切菜不…...

NSI程序打包脚本文件编写教程

引言 NSIS (Nullsoft Scriptable Install System) 是一个专业开源的制作 windows 安装程序的工具。我们通过HM NSIEDIT编写好脚本、编译即可生成exe安装包。安装过程中可以配置其安装包图标、名称、出版人、网站等。此外,还可以设置程序开机自启动、管理员权限运行…...

[LitCTF 2023]1zjs

很有意思的一道题,打开题目环境之后F12可以看到 点击那个蓝色下划线的就能看到: 然后访问: /fk3f1ag.php就可以看到: 然后将这些复制到控制台然后回车就能得到flag。...

MCU复位RAM会保持吗,如何实现复位时变量数据保持

在使用MCU时,通常大家默认MCU复位时RAM会被复位清零,那实际MCU复位时RAM是什么状态?如何让mcu复位时RAM保持不变呢? MCU复位有电源复位、Standby复位、内核复位、看门狗复位、引脚复位等。 其中内部会有掉电动作的复位有电源复位…...

解决window 端口的占用问题

netstat -nao | findstr "5554" taskkill -pid 5076 -f 本文资料来自 https://cloud.tencent.com/developer/article/1703982...

【Datawhale AI夏令营第四期】 浪潮源大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署

【Datawhale AI夏令营第四期】 浪潮源大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署 什么是RAG: 我能把这个过程理解为Kimi.ai每次都能列出的一大堆网页参考资料吗?Kimi学了这些资料以后,根据这里面的信息综…...

PyTorch 基础学习(10)- Transformer

系列文章: 《PyTorch 基础学习》文章索引 介绍 Transformer模型是近年来在自然语言处理(NLP)领域中非常流行的一种模型架构,尤其是在机器翻译任务中表现出了优异的性能。与传统的循环神经网络(RNN)不同&a…...

mybatis-plus使用

目录 1. 快速开始 1. 创建user表 2. 插入几条数据 3. 创建一个新的springboot项目 4. 导入mybatis-plus依赖 5. 在配置文件中进行配置 6. 编写实体类 7. 编写Mapper 接口类 8. 添加 MapperScan 注解 9. 测试 ​编辑2. CRUD 1. 插入一条语句 2. 根据主键id删除一条记录 3. 根据…...

ant-design-vue快速上手指南及排坑攻略

前言 ant-design-vue是Ant Design的Vue实现,旨在为Vue用户提供一套企业级的UI设计语言。本文将带你快速上手ant-design-vue,并在实践中分享一些常见的坑及解决方法。遵循本文档,让你轻松搭建优雅的Vue应用。 一、环境准备 在开始之前&…...

【GitLab】使用 Docker 安装 3:gitlab-ce:17.3.0-ce.0 配置

参考阿里云的教程docker的重启 sudo systemctl daemon-reload sudo systemctl restart docker配置 –publish 8443:443 --publish 8084:80 --publish 22:22 sudo docker ps -a 當容器狀態為healthy時,說明GitLab容器已經正常啟動。 root@k8s-master-pfsrv:~...

多线程(4)——单例模式、阻塞队列、线程池、定时器

1. 多线程案例 1.1 单例模式 单例模式能保证某个类在程序中只存在唯一一份实例,不会创建出多个实例(这一点在很多场景上都需要,比如 JDBC 中的 DataSource 实例就只需要一个 tip:设计模式就是编写代码过程中的 “软性约束”&am…...

告别电量焦虑,高性能65W PD快充芯片HUSB380A打造梦中情【头】

市面上的充电器越来越卷,让人眼花缭乱。压力同样也给到了快充芯片行业,要在激烈的市场竞争中脱颖而出,快充芯片必须集高功率、高性价比与广泛的兼容性等于一身。 基于此,慧能泰推出了新一代高性能PD Source产品——HUSB380A。 图…...

vulnhub靶场 — NARAK

下载地址:https://download.vulnhub.com/ha/narak.ova Description:Narak is the Hindu equivalent of Hell. You are in the pit with the Lord of Hell himself. Can you use your hacking skills to get out of the Narak? Burning walls and demons are around every cor…...

RabbitMQ如何保证消息不丢失

RabbitMQ消息丢失的三种情况 第一种:生产者弄丢了数据。生产者将数据发送到 RabbitMQ 的时候,可能数据就在半路给搞丢了,因为网络问题啥的,都有可能。 第二种:RabbitMQ 弄丢了数据。MQ还没有持久化自己挂了。 第三种…...

(亲测有效)SpringBoot项目集成腾讯云COS对象存储(1)

目录 一、腾讯云对象存储使用 1、创建Bucket 2、使用web控制台上传和浏览文件 3、创建API秘钥 二、代码对接腾讯云COS(以Java为例) 1、初始化客户端 2、填写配置文件 3、通用能力类 文件上传 测试 一、腾讯云对象存储使用 1、创建Bucket &am…...

无人机之故障排除篇

一、识别故障 掌握基本的无人机系统知识,遵循“先易后难、先外后内、先软件后硬件”的原则进行故障识别。一旦发现故障,立即停止飞行,避免进一步损坏。 二、机械部件维修 对于机身裂痕、螺旋桨损坏等情况,根据损坏程度更换相应部…...

深入理解Python常见数据类型处理

目录 概述数字类型 整数(int)浮点数(float)复数(complex) 字符串(str) 字符串基本操作字符串方法 列表(list) 列表基本操作列表方法列表推导式 元组&#xf…...

最佳实践:CI/CD交付模式下的运维展望丨IDCF

李洪锋 启迪万众数字技术(广州)有限公司 ,产品研发中心-系统运维部、研发效能(DevOps)工程师(中级)课程学员 一、DevOps现状 据云计算产业联盟《中国DevOps现状调查报告2023》显示,国内DevOps 落地成熟度…...

Flat Ads:开发者如何应对全球手游市场的洗牌与转型

2023年下半年至2024年上半年,中国手游的海外市场表现经历了显著变化,开发者要如何应对全球手游市场的洗牌与转型?本篇文章我们将结合相关行业白皮书的最新数据对中国手游出海表现进行分析与洞察。 一、中国手游海外市场表现 根据Sensor Tower《2024年海外手游市场洞察》最新…...

大数据:Hadoop(Yarn)

第1章 Yarn资源调度器Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。1.1 Yarn基础架构1.2 Yarn工作机制(1)…...

新手避坑指南:用STC89C51和DHT11搭建温湿度报警器(附Keil5代码调试心得)

从零搭建温湿度报警器:STC89C51与DHT11实战避坑手册 第一次接触51单片机项目时,那种既兴奋又忐忑的心情至今记忆犹新。看着网上的开源项目资料,满心以为按部就班就能成功,结果从元器件选型到代码烧录,几乎每一步都踩了…...

ChatBI怎么在BI试点中用?3个低门槛落地场景亲测有效

ChatBI试点的前置门槛:先搞定最小可行数据集,不用全量建设 ChatBI是观远数据推出的自然语言分析产品,用户可以通过口语化的提问直接获取数据结果、可视化图表甚至分析结论,无需掌握复杂的报表制作或SQL查询技能。在BI试点阶段引入…...

Vue 3 useModel与defineModel实战对比:如何根据项目需求选择最佳双向绑定方案

1. Vue 3双向绑定技术演进与核心概念 双向数据绑定一直是Vue框架的核心特性之一。在Vue 3.4版本中,官方引入了两种新的实现方式:useModel和defineModel。这两种API虽然目标相同,但在使用场景和实现方式上存在明显差异。 要理解它们的区别&…...

智谱CEO张鹏:将推理性能压榨至极限 不为短期盈利,而是为高质量Token消耗指数曲线

雷递网 乐天 3月31日智谱CEO张鹏今日在智谱2025年年报沟通会上表示,智谱曾经历过质疑,经历过挫折,但无数事实反复验证了一个判断——智能上界的提升,是大模型AGI时代唯一的"第一性"。张鹏说,AGI时代的商业价…...

Pixelorama:从像素小白到艺术大师的完整指南

Pixelorama:从像素小白到艺术大师的完整指南 【免费下载链接】Pixelorama Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yours…...

落地生产级推理引擎!高性能GPU算子生成系统Kernel-Smith发布

在当今的大模型时代,高性能 GPU 算子(Kernel)是将硬件算力转化为实际吞吐量的核心引擎。无论是支撑 Megatron、vLLM、LMDeploy 等底层系统,还是驱动 AI for Science (AI4S) 的复杂科学计算,高效的算子实现都是释放硬件…...

SDXL 1.0电影级绘图工坊:RTX 4090专属,5分钟零基础部署教程

SDXL 1.0电影级绘图工坊:RTX 4090专属,5分钟零基础部署教程 1. 为什么选择SDXL 1.0电影级绘图工坊 如果你正在寻找一款能在RTX 4090上发挥极致性能的AI绘图工具,SDXL 1.0电影级绘图工坊绝对是你的不二之选。这款工具专为4090显卡优化&#…...

GME-Qwen2-VL-2B自动化测试:基于模型视觉理解的GUI界面测试脚本

GME-Qwen2-VL-2B自动化测试:基于模型视觉理解的GUI界面测试脚本 1. 引言 你有没有遇到过这样的场景?辛辛苦苦写了一套UI自动化测试脚本,结果软件界面稍微改个按钮颜色、挪个位置,整个测试就全挂了。维护成本高得吓人&#xff0c…...

效率提升秘籍:使用快马AI一键生成动漫视频批量处理与格式转换工具

效率提升秘籍:使用快马AI一键生成动漫视频批量处理与格式转换工具 最近接手了一个动漫视频处理的项目,需要将大量不同格式的动漫视频统一转换为高清MP4格式,并生成预览缩略图。手动处理不仅耗时耗力,还容易出错。于是我开始寻找自…...