热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vim提供多窗口编辑的功能

本文出自http:blog.csdn.netshuangde800---------------------------------------------------------

本文出自   http://blog.csdn.net/shuangde800

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







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 &#43; W &#43; <&#xff1a;将当前窗口的宽度减少

Ctrl &#43; W &#43; > &#xff1a;将当前窗口的宽度增加

Ctrl &#43; W &#43; |&#xff1a;将当前窗口的宽度调到最大&#xff0c;也可他哦你通过ex命令&#xff1a;vertical resize n明确指定改变宽度
















分页编辑



除了使多窗口编辑外&#xff0c;vim还允许创建多个分页&#xff08;tab&#xff09;&#xff0c;每个分页各有独自的行为&#xff0c;类似于浏览器firefox或chrome的分页浏览功能




我们可以在vim或gvim中使用分页&#xff0c;但在gvim会更好用。

最终要的命令

&#xff1a;tabnew filename  打开新分页并编辑新文件&#xff08;可选的&#xff09;。如果未指定文件&#xff0c;则只打开新分页&#xff0c;并附上空的缓冲区。

&#xff1a;tabclose  关闭当前分页

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




游走分页





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

Ctrl &#43; PageDown&#xff1a;移动到下一个分页

Ctrl &#43; PageUp&#xff1a;移动到上一个分页










关闭与离开窗口



有4种关闭窗口的方式&#xff0c;分别是&#xff1a;离开&#xff08;quit&#xff09;、关闭&#xff08;close&#xff09;、隐藏&#xff08;hide&#xff09;、关闭其他窗口




^代表Ctrl键

^Wq&#xff0c;离开当前窗口

^Wc&#xff0c;关闭当前的窗口

^Wo&#xff0c;关闭当前窗口以外的所有窗口




推荐阅读
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 本文深入探讨了Ajax的工作机制及其在现代Web开发中的应用。Ajax作为一种异步通信技术,改变了传统的客户端与服务器直接交互的模式。通过引入Ajax,客户端与服务器之间的通信变得更加高效和灵活。文章详细分析了Ajax的核心原理,包括XMLHttpRequest对象的使用、数据传输格式(如JSON和XML)以及事件处理机制。此外,还介绍了Ajax在提升用户体验、实现动态页面更新等方面的具体应用,并讨论了其在当前Web开发中的重要性和未来发展趋势。 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • 优化Vite 1.0至2.0升级过程中遇到的某些代码块过大问题解决方案
    本文详细探讨了在将项目从 Vite 1.0 升级到 2.0 的过程中,如何解决某些代码块过大的问题。通过具体的编码示例,文章提供了全面的解决方案,帮助开发者有效优化打包性能。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 在Android应用开发中,实现与MySQL数据库的连接是一项重要的技术任务。本文详细介绍了Android连接MySQL数据库的操作流程和技术要点。首先,Android平台提供了SQLiteOpenHelper类作为数据库辅助工具,用于创建或打开数据库。开发者可以通过继承并扩展该类,实现对数据库的初始化和版本管理。此外,文章还探讨了使用第三方库如Retrofit或Volley进行网络请求,以及如何通过JSON格式交换数据,确保与MySQL服务器的高效通信。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 如何高效利用Hackbar插件提升网页调试效率
    通过合理利用Hackbar插件,可以显著提升网页调试的效率。本文介绍了如何获取并使用未包含收费功能的2.1.3版本,以确保在不升级到最新2.2.2版本的情况下,依然能够高效进行网页调试。此外,文章还提供了详细的使用技巧和常见问题解决方案,帮助开发者更好地掌握这一工具。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
author-avatar
Kris-Guo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有