热门标签 | 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;关闭当前窗口以外的所有窗口




推荐阅读
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
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社区 版权所有