【进来听歌】Vim同时操作多个文件的4个实用技巧整理

2023-10-18 22:18

本文主要是介绍【进来听歌】Vim同时操作多个文件的4个实用技巧整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面:今天继续分享一篇Vim相关的文章。第一次尝试微信公众号的自定义音频功能,录了首自己翻唱的歌曲,大家别见笑~欢迎交流唱歌技术,哈哈哈

使用Vim同时打开和操作多个文件是一种常见的工作场景。本文介绍Vim如何在多个打开的文件中进行快速切换的几种Vim实用技巧。

一、Vim分割窗口

最直观的使用Vim同时操作多个文件的方式是采用Vim多窗口分割功能。

如果已经打开了Vim,可以在命令行模式下使用 :vsp new_file.txt 来新打开一个垂直分割的窗口,或使用 :sp new_file.txt 命令新打开一个水平分割的窗口。

如果还没有启动Vim进程,可以在命令行下使用 vim-o2 foo.txt new_file.txt以水平方向分割2个窗口的方式打开 foo.txt 和 newfile.txt 两个文件;也可以使用 vim-O2 foo.txt new_file.txt 以垂直方向分割2个窗口的方式打开 foo.txtnewfile.txt 文件。

关于Vim启动参数的更多介绍,参考Vim教程网上的文章:《14个Vim启动参数和启动方法详解》。

二、使用Vim文件缓冲区

Vim每打开一个文件就会创建一个对应的Vim文件缓冲区 (Vim file buffer)。Vim支持同时在多个缓冲区进行操作,缓冲区不仅包含了文件的内容,也记录了该文件的编辑状态等配置信息,包括激活、隐藏、上次编辑行数等。

Vim命令行模式下的命令 :ls:buffers 会列出所有被载入到内存中的缓冲区的列表,% 符号指明哪个缓冲区在当前窗口中可见。

通过 :bnext (缩写形式 :bn) 和 :bprev (缩写形式 :bp)命令可正向或反向遍历列表,Vim组合命令 <Ctrl^> 可以在当前文件和轮换文件间快速切换。

:bfirst:blast 则分别用于跳转到Vim缓冲区列表的开头和结尾对应文件;而 :e new_file.txt 会在一个新的文件缓冲区打开名为 new_file.txt 的文件。

:b 是一个非常强大的Vim命令,它支持 tab 自动补齐。假设文件 foo.txt 是当前文件缓冲区列表中第两个文件,除了可以使用 :b2 编辑该文件外,还可以使用 :b oo<Tab> 将文件名从 oo 自动补齐为 foo.txt 。感受到 :b 命令的强大了吧!

三、Vim标签页

Vim标签页(Vim 7引入的功能)是可以容纳一系列Vim窗口的容器,可通过Vim帮助命令 h: tabpage 查看官方为Vim标签页的介绍。

Vim命令行命令 :tabs 可以列出所有的标签页和它们包含的窗口,当前窗口用 > 表示,修改过的缓冲区用 + 表示。

Vim命令行模式下,使用命令 :tabnext (缩写形式 :tabn) 可以移动到下一个标签页;Vim普通模式下,使用命令 gt 同样可以移动到下一个标签页。

关于Vim标签页切换、Vim标签页移动和标签页退出等命令,可以参考Vim教程网上的文章:《Vim标签页介绍及用标签页将窗口分组》。

四、Vim参数列表args

Vim参数列表记录了在启动时作为参数传递给 Vim 的文件列表,在Vim命令行模式下执行 :args 命令可以打印出当前参数列表的内容,可以用 :next:prev 命令遍历参数列表中的所有文件。

:argdo 命令可以在参数列表args中的每个文件上执行一条 Ex 命令(注意:不能是普通模式的命令)。:argdo 命令结合 :args 指定参数列表可以对任意个文件执行多种操作。

这篇关于【进来听歌】Vim同时操作多个文件的4个实用技巧整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/235465

相关文章

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad