各位小伙伴们,你们好,我又更新了!

之前介绍了vim关于多窗口的操作,vim中多窗口是将多个窗口在一个屏幕中显示,这似乎与我们常见的ide有点不一样,一般的ide都是新开一个窗口之后在新的标签页中显示,通过不同的标签页对应不同的文件。我们的浏览器就是一个典型的例子。

而vim似乎不是这样的,vim管理文件采用的是缓冲区列表的方式,一个缓冲区对应一个显示窗口,而多个窗口可以显示在一个屏幕上。而vim中的标签页更像是一个容器,用来容纳这么些窗口。它更像是一个虚拟桌面,不管在功能上还是使用习惯上都像是虚拟桌面。(虚拟桌面可是个摸鱼的好东西,不过现在有更高级的摸鱼方法就是了。 有朝一日我一定要尝试用vim来摸鱼)

除了使用它来摸鱼,我们再来想象这么一个场景:我们在做一个项目,已经打开了需要的代码文件,并且将它们经过了精心的布局,但是这个时候来了新的任务(以前的老项目出bug了,wtf!),我们不想在精心布置的窗口中插入这么一个第三者,总归心里有点别扭。这个时候我们新开一个标签页,在这个标签页里打开原来项目相关的文件。当我们修复完这个bug之后,直接切回到原来的标签页。之前的布局仍在原地等待着你(这么一个对你不离不弃的编辑器,多么令人感动)。

我知道,看了我这么长的vim教程,很多小伙伴已经头晕脑胀了,甚至有的可能觉得最近介绍的东西,使用插件能更好的完成类似的操作,这些操作方式已经过时了。但是vim它提供了原生的操作,总有它的道理。打起精神来吧。

标签页

可以使用命令:tabedit {filename} 打开一个新的标签页,如果不加文件名则打开一个空的标签页。我们也可以使用tabnew 命令,参数与效果完全相同。



如果当前标签页中包括多个窗口,那么可以使用<Ctrl+w>T 将当前缓冲区移动到新的标签页中。

关闭标签

可以使用tabc[lose] 或者使用tabo[nly] 来关闭标签页,前者是关闭当前标签页,后者是关闭所有,只保留当前激活的标签页。

切换标签页

在普通模式下使用gt 切换到下一个标签页,使用gT 切换到上一个标签页,也可以在命令模式中使用:tabn[ext]tabp[revious] 来达到同样的效果。另外tabnextgt 前面都是支持添加数字编号的。这样我们可以方便的跳转到第几个标签页,这个编号是从1开始的。





最后再介绍一个tabmove {n} 命令,它可以用来移动当前标签页到指定位置,后面加数字表示移动到第几个标签的位置,不加数字默认移动到结尾位置。当然如果你使用的是图形版的vim或者终端支持鼠标操作,也可以使用拖拽的方式完成这一工作。

最后总结

关于标签的操作,基本就这么多了。其实真要说起来,这些操作比较繁琐,记起来也麻烦,vim自带的标签功能相对比较简陋,后面我会介绍对应的插件对其进行扩充,本来我想跳过这部分的内容,毕竟有更好的插件和更好的操作方式。但是它作为vim提供的一大功能,使用频率也算比较大,想想还是说一下比较好吧。

最后总结一下提到的一些命令吧:

  • :tabedit {filename} : 新建标签页,并在标签页中打开对应文件
  • tabnew: 与tabedit 完全相同
  • <Ctrl+w>T: 如果当前标签中有多个子窗口,它会将当前活动子窗口放到新的标签页中
  • tabc[lose]: 关闭当前标签页
  • tabo[nly]: 关闭除当前激活标签页的所有
  • gt:tabn[ext]: 切换到下一个标签页
  • gTtabp[revious]: 切换到上一个标签页
  • tabmove {n}: 移动当前标签页

vim 从嫌弃到依赖(11)——标签页操作的更多相关文章

  1. 4. VIM 系列 - 认识VIM的缓冲区、窗口、标签页

    目录 1. 缓冲区 2. 窗口 3. 标签页 4. 设置一下热键 1. 缓冲区 文件和缓冲区的区别 vim 打开一个文件时,其实是从磁盘中读取文件到内存中,vim的一些操作其实是在操作缓冲区, 当使用 ...

  2. bootstrap 下 标签页跳转总结

    最近遇到一个问题,是关于bootstrap中的标签页实现上的一些功能实现,现总结一下. 问题描述:点击其他标签页后,如何在点击搜索按钮后自动跳转到第一个标签页.如下图 通过对bootstrap框架里的 ...

  3. vim 标签页 tabnew 等的操作命令

    对于vim这个 ide来说, 单纯的用 多子窗口 来操作, 感觉还是不够的, 还要结合标签页tab pages来,才能更好的操作. 所有关于标签 的 命令行 命令都是 以 :tab开始的, 可以用ta ...

  4. VIM 实现tab标签页及分屏,切换命令

    1,在一个窗口中,VIM 的小tab标签页命令:   :tabnew [++opt选项] [+cmd] 文件            建立对指定文件新的tab :tabc       关闭当前的tab ...

  5. 【vim】分割窗口、标签页与Quickfix窗口

    vim支持窗口分割和标签页,合适地使用这两种特性可以使文字编辑工作更愉快. 1. 窗口分割 vim支持窗口的水平分割和垂直分割.以下是常用的操作指令或快捷键. 命令 说明 vim -o <fil ...

  6. Vim技能修炼教程(9) - 缓冲区和标签页

    缓冲区 上一节我们学习了窗口相关的命令,其实多窗口的最大功能在于存放多个不同的缓冲区. 文件载入内存之后,我们操作的其实是缓冲区.:write命令就是将缓冲区写回文件的目的. 查看内存中的缓冲区 通过 ...

  7. easyui学习笔记11—tab标签页和鼠标动作

    这篇我们看看标签页是怎么实现的,默认情况下要靠点击切换标签,也可以用鼠标切换标签选项,就是鼠标放在标签上切换. 首先看看引用的资源文件 1.资源文件 <head> <meta cha ...

  8. vim 标签页管理

    一.打开关闭标签页 1. :tabnew  新建标签页 2. :tabc     关闭当前标签页 3. :tabo     关闭其他标签页保留当前标签页 4. :tabe file  在新标签页中打开 ...

  9. IOS UIScrollView + UIButton 实现segemet页面和顶部标签页水平滚动效果

    很长一段时间没有写博客了,最近在学习iOS开发,看了不少的代码,自己用UIScrollView和UIButton实现了水平滚动的效果,有点类似于今日头条的主界面框架,效果如下: 代码如下: MyScr ...

  10. gVim多标签页

    我们一般使用的文本编辑器,如:editplus.ultraEdit等都是支持多标签页的,可以同时打开多个文件,方便切换,以前gVim只能打开多个窗口,或者一个窗口切出多个窗口来编辑,自从7.0以后Vi ...

随机推荐

  1. CPU推理|使用英特尔 Sapphire Rapids 加速 PyTorch Transformers

    在 最近的一篇文章 中,我们介绍了代号为 Sapphire Rapids 的第四代英特尔至强 CPU 及其新的先进矩阵扩展 (AMX) 指令集.通过使用 Amazon EC2 上的 Sapphire ...

  2. C99标准前后对于二维数组的动态声明问题

    html: toc: true 写在前面: 出于作者不了解C99以前标准中对二维数组的动态声明而导致的一场考场事故,作者写下这篇文章,,以便其他同学在遇到类似问题时不要犯同样的错误,同时作为对自己的警 ...

  3. 最优订单执行算法相关Paper介绍

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 随着量化交易.高频交易的竞争日益激烈,事实证明,交易执行显着影响量化策略的投资绩效. 因此,许多从业者开 ...

  4. Asp .Net Core 系列:集成 Ocelot+Consul实现网关、服务注册、服务发现

    什么是Ocelot? Ocelot是一个开源的ASP.NET Core微服务网关,它提供了API网关所需的所有功能,如路由.认证.限流.监控等. Ocelot是一个简单.灵活且功能强大的API网关,它 ...

  5. stm32f103 rt-thread fal easyflash移植过程

    需求:使用Stm32F103片内Flash进行数据存储 硬件平台:Stm32F103C8t6(由于Stm32F103C8t6的Flash标注为64k实际为128K,64KFlash在使用rt-thre ...

  6. 应届生必读:Java真实项目的开发流程和常用工具

    本文出自本人写的书,谢绝转载,更勿抄袭. 本人有多年的Java面试官经验,经常要和一些包装项目经验的求职者打交道.当然平时也兼职做些Java面试辅导工作,最近也陆续帮一些在校生朋友成功找到Java工作 ...

  7. freeswitch隐藏fs标识

    概述 freeswitch是一款好用的开源软交换平台. fs的默认配置环境下,sip消息中有很多freeswitch的标识,比如"user-agent","contact ...

  8. socket TCP DPT 网络编程

    复习: ARP协议: 广播和单播 通过ip地址获得mac地址 机器A发起一个arp请求(只包含A的ip地址) 交换机接收到请求,广播这条消息 所有的机器都会接受到这条请求,只有需要寻找的机器B的ip地 ...

  9. 帮助编写异步代码的ESLint规则

    调试 JavaScript 中的异步代码有时就像在雷区中穿梭.你不知道 console.log 会在何时何地打印出来,也不知道代码是如何执行的. 你很难正确构造异步代码,使其按照你的意图以正确的顺序执 ...

  10. springboot启动流程 (1) 流程概览

    本文将通过阅读源码方式分析SpringBoot应用的启动流程,不涉及Spring启动部分(有相应的文章介绍). 本文不会对各个流程做展开分析,后续会有文章介绍详细流程. SpringApplicati ...