【进来听歌】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

相关文章

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

动手学深度学习【数据操作+数据预处理】

import osos.makedirs(os.path.join('.', 'data'), exist_ok=True)data_file = os.path.join('.', 'data', 'house_tiny.csv')with open(data_file, 'w') as f:f.write('NumRooms,Alley,Price\n') # 列名f.write('NA

centos 6安装 vim

centos 安装vim 1.首先查询当前当前vim所依赖的包存在不存在.检查缺少哪个几个依赖包 [root@bogon firstCopy]# rpm -qa|grep vivimvim-common-7.4.160-5.el7.x86_64vim-enhanced-7.4.160-5.el7.x86_64vim-filesystem-7.4.160-5.el7.x86_64vim-

线程的四种操作

所属专栏:Java学习        1. 线程的开启 start和run的区别: run:描述了线程要执行的任务,也可以称为线程的入口 start:调用系统函数,真正的在系统内核中创建线程(创建PCB,加入到链表中),此处的start会根据不同的系统,分别调用不同的api,创建好之后的线程,再单独去执行run(所以说,start的本质是调用系统api,系统的api

Java IO 操作——个人理解

之前一直Java的IO操作一知半解。今天看到一个便文章觉得很有道理( 原文章),记录一下。 首先,理解Java的IO操作到底操作的什么内容,过程又是怎么样子。          数据来源的操作: 来源有文件,网络数据。使用File类和Sockets等。这里操作的是数据本身,1,0结构。    File file = new File("path");   字

MySQL——表操作

目录 一、创建表 二、查看表 2.1 查看表中某成员的数据 2.2 查看整个表中的表成员 2.3 查看创建表时的句柄 三、修改表 alter 3.1 重命名 rename 3.2 新增一列 add 3.3 更改列属性 modify 3.4 更改列名称 change 3.5 删除某列 上一篇博客介绍了库的操作,接下来来看一下表的相关操作。 一、创建表 create

rtmp流媒体编程相关整理2013(crtmpserver,rtmpdump,x264,faac)

转自:http://blog.163.com/zhujiatc@126/blog/static/1834638201392335213119/ 相关资料在线版(不定时更新,其实也不会很多,也许一两个月也不会改) http://www.zhujiatc.esy.es/crtmpserver/index.htm 去年在这进行rtmp相关整理,其实内容早有了,只是整理一下看着方

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

JavaScript整理笔记

JavaScript笔记 JavaScriptJavaScript简介快速入门JavaScript用法基础语法注释关键字显示数据输出innerHTML innerText属性返回值的区别调试 数据类型和变量数据类型数字(Number)字符串(String)布尔值(Boolean)null(空值)和undefined(未定义)数组(Array)对象(Object)函数(Function) 变量

封装MySQL操作时Where条件语句的组织

在对数据库进行封装的过程中,条件语句应该是相对难以处理的,毕竟条件语句太过于多样性。 条件语句大致分为以下几种: 1、单一条件,比如:where id = 1; 2、多个条件,相互间关系统一。比如:where id > 10 and age > 20 and score < 60; 3、多个条件,相互间关系不统一。比如:where (id > 10 OR age > 20) AND sco