原文: https://blog.csdn.net/shuangde800/article/details/11430659

---------------------------------------------------------------

vim提供多窗口编辑的功能,可以简化复合的编辑任务。vim的多窗口并不是说在终端上启动多个vim实例。


启动多窗口编辑

vim的多窗口是动态的,可以开始编辑时就打开多窗口,也可以工作时随时增加新窗口,或者删除一个窗口。

$ vim  -o  file1 file2  打开一个编辑会话,显示为水平分割成两半的窗口,一个文件占用一个窗口。

$ vim  -O  file1 file2  和上面相同,不过是垂直分割两半的窗口

如下 图所示:

如果画面分割后不足以容纳下所有窗口,那么第一个文件会占用大部分窗口,余下的窗口则载入缓冲区,暂时不能看到,但仍可以取用。

-o后面加一个数字n,是预分配窗口的形式打开:

$ vim  -o5 file1  file2   将分配5个相同的窗口,有3个是闲置的


vim的多窗口编辑

:split    新建一个窗口,将当前窗口分割成两半,他们显示的是相同缓冲区的内容(同一个文件)。这样就可以在两个窗口中浏览相同的文件了。

:vsplit   创建全新的垂直分割的窗口,同样是显示和当前窗口同一个文件内容。效果如下:

当多个窗口编辑同一个文件时,在任意一个窗口进行编辑(例如删除一行),那么所有相同文件的窗口上都会同时反应效果,因为他们共享同一个文件缓冲区。

如果想编辑或浏览另一个文件,而又不想失去在当前文件中的编辑位置,就用新文件的参数传给:split命令

:split  otherfile


分割窗口的选项

:[n] split(vsplit)  [++opt]  [+cmd]  [file]

命令中:

n   为vim指定在新窗口中显示的行数,且新窗口的大小刚好容纳该行数,新窗口位于画面顶端

opt  传递vim选项信息给新的窗口会话(请注意,它的前面必须加上两个加号)

cmd 传入欲在新窗口中执行的命令(请注意,它的前面必须加上一个加号)

file  指定在新窗口中编辑的文件

:sview  filename  以只读的方式水平分割打开一个新窗口

:sfind  [++opt]  [+cmd]  [file]  和split的运作方式相似,但在path中寻找filename,如果vim未找到文件则不显示


在窗口间游走

在gvim或vim中,在窗口中移动其实非常简单,因为gvim已默认支持鼠标点击来换编辑窗口,而vim中,则可以打开mouse选项,

:set  mouse = a   为命令、输入、导航都激活鼠标的使用

我们知道vim的特色就是可以脱离鼠标而工作,所以可以使用vim提供的全套导航命令,在会话中快速而准确的移动编辑窗口。

按住Ctrl + W,然后再加上h, j, k, l,分别表示向左、下、上、右移动窗口

Ctrl + w + h:向左移动窗口

Ctrl + w + j: 向下移动窗口

Ctrl + w + j: 向上移动窗口

Ctrl + w + l: 向右移动窗口

Ctrl + w + w:这个命令会在所有窗口中循环移动

Ctrl + w + t:移动到最左上角的窗口

Ctrl + w + b:移动到最右下角的窗口

Ctrl + w + p:移动到前一个访问的窗口


移动窗口

vim中有两种移动窗口方式,一种只是简单地在屏幕上切换窗口,尺寸维持不变;另一种则是改变窗口的实际布局,还会调整尺寸,以填充它移动的位置。

1. 移动窗口本身(轮换或交换)

Ctrl + w + r:向右或向下方交换窗口,而Ctrl + w + R则和它方向相反。

光标会随着窗口而移动

Ctrl + w + x:交换同列或同行的窗口的位置。vim默认交换当前窗口的与它下一个窗口的位置,如果下方没有窗口,则试着与上一个窗口交换位置。亦可在此命令前加上数量,与制定的窗口交换位置。

2. 移动窗口并改变其布局

注:下面的第三个字母都是大写,按玩Ctrl + w之后,按shif + 相应的字母。后面用^代替Ctrl

Ctrl + w + K :移动当前窗口至屏幕顶端,并占用全部宽度

^WJ: 移动窗口至屏幕底端,并占用全部宽度

^WH:移动窗口至屏幕左端,并占用全部高度

^WL:移动窗口至屏幕右端,并占用全部高度

^WT :移动窗口至屏新的现有分页

3. 调整窗口尺寸

改变当前窗口的尺寸,同时当然也会影响到其他窗口。

在gvim和vim中,可以用鼠标点击窗口的顶部白色条并窗口直接调整尺寸。

也可以直接用命令,调整尺寸命令也是以Ctrl + W开头:

Ctrl + W + =  :让所有窗口调整至相同尺寸(平均划分)

Ctrl + W + -:将当前窗口的高度减少一行,也可在ex命令中,:resize -4明确指定减少的尺寸

Ctrl + W + +:将当前窗口的高度增加一行。同样在ex命令中,:resize +n 明确指定增加尺寸

Ctrl + W + < :将当前窗口的宽度减少

Ctrl + W + > :将当前窗口的宽度增加

Ctrl + W + |:将当前窗口的宽度调到最大,也可他哦你通过ex命令:vertical resize n明确指定改变宽度


分页编辑

除了使多窗口编辑外,vim还允许创建多个分页(tab),每个分页各有独自的行为,类似于浏览器firefox或chrome的分页浏览功能。

我们可以在vim或gvim中使用分页,但在gvim会更好用。

最终要的命令

:tabnew filename  打开新分页并编辑新文件(可选的)。如果未指定文件,则只打开新分页,并附上空的缓冲区。

:tabclose  关闭当前分页

:tabonly  关闭其他所有的分页。如果其他分页中有修改过的文件,则不会移除该分页,除非设置了autowrite选项。此时,所有修改过的文件都在分页关闭前写入磁盘。

游走分页

可以直接点鼠标来移动到另一个分页,也可以用命令

Ctrl + PageDown:移动到下一个分页

Ctrl + PageUp:移动到上一个分页


关闭与离开窗口

有4种关闭窗口的方式,分别是:离开(quit)、关闭(close)、隐藏(hide)、关闭其他窗口

^代表Ctrl键

^Wq,离开当前窗口

^Wc,关闭当前的窗口

^Wo,关闭当前窗口以外的所有窗口

vim 多窗口,多tab编辑相关推荐

  1. vim 多窗口启动以及相互切换

    vim 在linux开发环境中使用的非常广泛,主要用来进行文本类型文件的编辑操作.在项目开发中,我们需要经常在多个文件间进行切换,笨一点的方法可能就是文件的频繁打开.关闭,那有没有更'懒'一点的方式呢 ...

  2. vim 多窗口切换和其他的一些快捷方法

    转载地址: http://blog.csdn.net/devil_2009/article/details/7006113 vim多窗口使用技巧 1.打开多个窗口 打开多个窗口的命令以下几个: 横向切 ...

  3. 【转】vim 分割窗口[转]_孤鸿灬的空间_百度空间

    [转]vim 分割窗口[转]_孤鸿灬的空间_百度空间 [转]vim 分割窗口[转]_孤鸿灬的空间_百度空间 [转]vim 分割窗口[转] 同时显示两个不同的文件,或者同时查看一个文件的两个不同的部分, ...

  4. Linux中设置tab4个空格,Linux怎么在VIM编辑器中修改Tab为4个空格

    摘要 腾兴网为您分享:Linux怎么在VIM编辑器中修改Tab为4个空格,云景任务,壹学车,围棋宝典,腾讯qq等软件知识,以及临沂市教育收费,美矣收银系统,我的世界rpgitem,来电归属地显示,盘古 ...

  5. Linux vi/vim文本编辑器技巧, vim多窗口使用技巧

    Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地 ...

  6. VIM中空格和TAB的替换 [转]

    在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格) set expandtab 对于已保存的文件,可以使 ...

  7. 搞定vim的窗口操作

    最近在给学生演示数据结构代码时,发现用一般的方法总会有不方便,如果使用ide又觉得太浪费了,后来觉得用vim就够了,使用buffer总会需要页面调来跳出,学生看起来容易迷糊.所以就研究了下vim的窗口 ...

  8. 在bat文件中关闭cmd窗口的快速编辑模式

    在bat文件中关闭cmd窗口的快速编辑模式 windows下再bat中输入 @echo off reg add HKEY_CURRENT_USER\Console /v QuickEdit /t RE ...

  9. 详解Linux系统Vi 和 Vim中正常模式、编辑模式、命令模式相互转化,以及vim命令使用

    详解Linux系统Vi 和 Vim中正常模式.编辑模式.命令模式相互转化 vi 和 vim 的基本介绍 vi 和 vim 的三种常见模式 正常模式 正常模式常用命令 插入模式/编辑模式 命令行模式 v ...

  10. 设置 vim 显示行号/ Tab 键缩进为4格

    设置 vim 显示行号/ Tab 键缩进为4格 1. 临时显示行号 在 INSERT 模式下,键入 ESC 退出 INSERT 模式,然后输入 : (注意是英文输入法下),紧接着键入 set numb ...

最新文章

  1. GC garbage collection 垃圾回收机制
  2. ASP.NET Core MVC with EF Core-迁移
  3. linux系统分析工具续-SystemTap和火焰图(Flame Graph)
  4. tomcat中间件的默认端口号_Tomcat下载安装及配置
  5. js获取自定义属性的值
  6. 关于vue的钩子函数+生命周期
  7. 如何使用Bash将stdout和stderr重定向并附加到文件?
  8. [Android]EditText属性详解
  9. eclipse添加windowsBuilder的方法
  10. 1688接口:item_search - 按关键字搜索商品
  11. 光缆接头盒故障原因分析
  12. java线程栅栏_用栅栏(CyclicBarrier)实现高并发测试
  13. 使用旋转动画实现刻度表
  14. 08 量子力学教材推荐,量子力学书单:量子力学、高等量子力学、量子统计、量子信息、路径积分...(适合物理专业本科生、研究生、物理爱好者)
  15. hikari数据源配置类_SpringBoot2集成Mybatis Hikari多数据源配置
  16. 判断字符串中是否仅包含英文字母、数字和汉字
  17. 题目错题记录表mysql设计_基于Web2.0的跨平台电子错题本功能的设计与实现
  18. LMK、ZMK、TMK、ZAK等密钥对照表
  19. 关于吉他5种指型Mi-La-Re-Sol-Ti
  20. 吉大400+计算机软件人工智能考研攻略

热门文章

  1. 重新精读《Java 编程思想》系列之public,protected,private与无修饰符权限的区别...
  2. 彻底理解Canal,看这篇就够了
  3. linux find命令中-print0和xargs中-0的用法
  4. Fiddler抓取HTTPS包
  5. mysql web搜索系统_【20201011】做个搜索引擎(6)——网页蜘蛛代码编写(二)
  6. 2015内蒙古计算机考试成绩,2015年新疆公务员考试笔试成绩计算机加分说明
  7. python中shutil模块_python文件、文件夹、压缩包处理模块-shutil模块-阿里云开发者社区...
  8. insert批量插入500ms_如何快速安全的插入千万条数据
  9. math.hypot java_Java Math.hypot() 方法
  10. DLPack构建跨框架深度学习编译器-实现张量之间的相互转换【pytorch】