vim 分割窗口

From: http://buaadallas.blog.51cto.com/399160/83607

Vim用户手册 - by Bram Moolenaar
  译者:Nek_in 
[url]http://vimcdoc.sf.net[/url]
  分割窗口
显示两个不同的文件;或者同时显示一个文件的两个不同地方;又或者并排比较两个文
件。这一切都可以通过分割窗口实现。
|08.1| 分割窗口
|08.2| 用另一个文件分割窗口
|08.3| 窗口大小
|08.4| 垂直分割
|08.5| 移动窗口
|08.6| 对所有窗口执行命令
|08.7| 用 vimdiff 显示区别
|08.8| 杂项
  下一章:|usr_09.txt| 使用 GUI 版本
  前一章:|usr_07.txt| 编辑多个文件
  目录:|usr_toc.txt|
*08.1* 分割窗口
最简单的打开新窗口命令是如下:
  :split
这个命令把屏幕分解成两个窗口并把光标置于上面的窗口中:
  +----------------------------------+
  |/* file one.c */ |
  |~ |
  |~ |
  |one.c=============================|
  |/* file one.c */ |
  |~ |
  |one.c=============================|
  | |
  +----------------------------------+
你可以看到显示同一个文件的两个窗口。带 "====" 的行是状态条,用来显示它上面的窗
口的信息。(在实际的屏幕上,状态条用反色显示)
  这两个窗口允许你同时显示一个文件的两个部分。例如,你可以让上面的窗口显示
变量定义而下面的窗口显示使用这些变量的代码。
CTRL-W w 命令可以用于在窗口间跳转。如果你在上面的窗口,它会跳转到下面的窗口,
如果你在下面的窗口,它会跳转到上面的窗口。(CTRL-W CTRL-W 可以完成相同的功能
这是为了避免你有时按第二次的时候从 CTRL 键上缩手晚了。)
关 闭 窗 口
以下命令用于关闭窗口:
  :close
实际上,任何退出编辑的命令都可以关闭窗口,象 ":quit" 和 "ZZ" 等。但 "close"
可以避免你在剩下一个窗口的时候不小心退出 Vim 了。
关 闭 所 有 其 它 窗 口
如果你已经打开了一整套窗口,但现在只想编辑其中一个,如下命令可以完成这个功能:
  :only
这个命令关闭除当前窗口外的所有窗口。如果要关闭的窗口中有一个没有存盘,Vim 会
显示一个错误信息,并且那个窗口不会被关闭。
*08.2* 用另一个文件分割窗口
下面命令打开另一个窗口并用该窗口编辑另一个指定的文件:
  :split two.c
如果你在编辑 one.c,则命令执行的结果是:
  +----------------------------------+
  |/* file two.c */ |
  |~ |
  |~ |
  |two.c=============================|
  |/* file one.c */ |
  |~ |
  |one.c=============================|
  | |
  +----------------------------------+
要打开窗口编辑一个新文件,可以使用如下命令:
  :new
你可以重复使用 ":split" 和 ":new" 命令建立任意多的窗口。
*08.3* 窗口大小
:split 命令可以接受个数前缀。如果指定了这个前缀,这个数将作为窗口的高度。例如
如下命令可以打开一个三行的窗口并编辑文件 alpha.c:
  :3split alpha.c
对于已经打开的窗口,你可以用有几种方法改变它的大小。如果你有鼠标,很简单:把
鼠标指针移到分割两个窗口的状态栏上,上下拖动即可。
要扩大窗口:
  CTRL-W +
要缩小窗口:
  CTRL-W -
这两个命令接受个数前缀用于指定扩大和缩小的行数。所以 "4 CTRL-W +" 会使窗口增
高4行。
要把一个窗口设置为指定的高度,可以用这个命令:
  {height}CTRL-W _
就是先输入一个数值,然后输入 CTRL-W 和一个下划线(在美式英语键盘中就是 Shift
加上 "-")。
  要把一个窗口扩展到尽可能大,可以使用无个数前缀的 CTRL-W _ 命令。
使 用 鼠 标
在 Vim 中,你可以用键盘很快完成很多工作。但很不幸,改变窗口大小要敲不少键。在
这种情况下,使用鼠标会更快一些。把鼠标指针移到状态条上,按住左键并拖动。状态
条会随之移动,这会使一个窗口更大一个更小。
选 项
'winheight' 选项设置最小的期望窗口高度而 'winminheight' 选项设置最小的 "硬性"
高度。
  同样,'winwidth' 设置最小期望宽度而 'winminwidth' 设置为最小硬性宽度。
  'equalalways' 选项使所有的窗口在关闭或者打开新窗口的时候总保持相同大小。
*08.4* 垂直分割
":split"命令在当前窗口的上面建立窗口。要在窗口左边打开新窗口,用这个命令:
  :vsplit
或者
  :vsplit two.c
这个命令的结果如下:
  +--------------------------------------+
  |/* file two.c */ |/* file one.c */ |
  |~ |~ |
  |~ |~ |
  |~ |~ |
  |two.c===============one.c=============|
  | |
  +--------------------------------------+
实际中,中间的竖线会以反色显示。这称为垂直分割线。它左右分割一个窗口。
还有一个 "vnew" 命令,用于打开一个垂直分割的新窗口。还有一种方法是:
  :vertical new
"vertical" 命令可以放在任何分割窗口的命令的前面。这会在分割窗口的时候用垂直
分割取代水平分割。(如果命令不分割窗口,这个前缀不起作用)。
在 窗 口 间 跳 转
由于你可以用垂直分割和水平分割命令打开任意多的窗口,你就能够任意设置窗口的布局。
接着,你可以用下面的命令在窗口之间跳转:
  CTRL-W h 跳转到左边的窗口
  CTRL-W j 跳转到下面的窗口
  CTRL-W k 跳转到上面的窗口
  CTRL-W l 跳转到右边的窗口
  CTRL-W t 跳转到最顶上的窗口
  CTRL-W b 跳转到最底下的窗口
你可能已经注意到这里使用移动光标一样的命令用于跳转窗口。如果你喜欢,改用方向
键也行。
  还有其它命令可以跳转到别的窗口,参见:|Q_wi|。
*08.5* 移动窗口
你已经分割了一些窗口,但现在的位置不正确。这时,你需要一个命令用于移动窗口。
例如,你已经打开了三个窗口,象这样:
  +----------------------------------+
  |/* file two.c */ |
  |~ |
  |~ |
  |two.c=============================|
  |/* file three.c */ |
  |~ |
  |~ |
  |three.c===========================|
  |/* file one.c */ |
  |~ |
  |one.c=============================|
  | |
  +----------------------------------+
显然,最后一个窗口应该在最上面。移动到那个窗口 (用 CTRL-W w)并输入如下命令:
  CTRL-W K
这里使用大写的 K。这样窗口将被移到最上面。你可以注意到,这里有用 K 表示向上
移动了。
  如果你用的是垂直分割,CTRL-W K 会使当前窗口移动到上面并扩展到整屏的宽度。
假设你的布局如下:
  +-------------------------------------------+
  |/* two.c */ |/* three.c */ |/* one.c */ |
  |~ |~ |~ |
  |~ |~ |~ |
  |~ |~ |~ |
  |~ |~ |~ |
  |~ |~ |~ |
  |two.c=========three.c=========one.c========|
  | |
  +-------------------------------------------+
当你在中间的窗口(three.c)中使用 CTRL-W K 后,结果会是:
  +-------------------------------------------+
  |/* three.c */ |
  |~ |
  |~ |
  |three.c====================================|
  |/* two.c */ |/* one.c */ |
  |~ |~ |
  |two.c==================one.c===============|
  | |
  +-------------------------------------------+
还有三个相似的命令(估计你已经猜出来了):
  CTRL-W H 把当前窗口移到最左边
  CTRL-W J 把当前窗口移到最下边
  CTRL-W L 把当前窗口移到最右边
*08.6* 对所有窗口执行命令
你打开了几个窗口,现在你想退出 Vim,你可以分别关闭每一个窗口。更快的方法是:
  :qall
这表示 "quit all"(全部退出)。如果任何一个窗口没有存盘,Vim 都不会退出。同时
光标会自动跳到那个窗口,你可以用 ":write" 命令保存该文件或者 ":quit!" 放弃修改。
如果你知道有窗口被改了,而你想全部保存,则执行如下命令:
  :wall
这表示 "write all"(全部保存)。但实际上,它只会保存修改过的文件。Vim 知道保
存一个没有修改过的文件是没有意义的。
  另外,还有 ":qall" 和 "wall" 的组合命令:
  :wqall
这会保存所有修改过的文件并退出 Vim 。
  最后,下面的命令由于退出 Vim 并放弃所有修改:
  :qall!
注意,这个命令是不能撤消的。
为 所 有 的 参 数 打 开 窗 口
要让 Vim 为每个文件打开一个窗口,可以使用 "-o" 参数:
  vim -o one.txt two.txt three.txt
这个结果会是:
  +-------------------------------+
  |file one.txt |
  |~ |
  |one.txt========================|
  |file two.txt |
  |~ |
  |two.txt========================|
  |file three.txt |
  |~ |
  |three.txt======================|
  | |
  +-------------------------------+
"-o" 参数用于垂直分割窗口。
  如果 Vim 已经启动了,可以使用 ":all" 命令为参数列表中的每个文件打开一个窗
口。":vertical all" 以垂直分割的方法打开窗口。
*08.7* 用 vimdiff 显示区别
有一种特殊的启动 Vim 的方法可以用来显示两个文件的区别。让我们打开一个 "main.c"
并插入一些字符。在设置了 'backup' 选项的情况下保存这个文件,以便产生 "main.c~"
备份文件。
  在命令行中输入如下命令:(不是在Vim中)
  vimdiff main.c~ main.c
Vim 会用垂直分割的方式打开两个文件。你只能看到你修改过的地方和上下几行的地方。
  VV VV
  +-----------------------------------------+
  |+ +--123 lines: /* a|+ +--123 lines: /* a|


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scratch的积木相与java的_scratch课堂:积木块详解

scratch作为麻省理工学院推出的少儿编程工具,简单易用,十分好学。scratch不仅仅是将编程以积木的形式进行了表现,更是将程序的内容进行了打包处理,让我们只需要根据字面的意思进行拼接即可实现功能,不过scratch的代码还…

老生常谈–希望别再纠结了朋友

片幅大小与立体感的讨论--群里还有朋友在纠结升级机身FF还是买新24G 在网上的争论很多....各种讲法一堆看完后保证让你吐血不说,越看越迷糊 简单讲...立体感的差异之处在哪边关键就在于景深.... 简单明了我想很多人看完后依然不了一张照片要有立体与层次的感觉基本上…

java打包python到exe文件

最近想把写的python代码打包,以供没用安装python环境的同事使用,需求如下: 无python环境也可执行文件尽量少,不要太乱程序体积尽量小如果需要更新的话重复类库不用更新采用方案如下: 使用py2exe自动导入类库使用7-ZIP压…

React开发(173):ant design设置额外的展开行

expandedRowRender额外的展开行Function(record, index, indent, expanded):ReactNode

fail2ban封IP之Http

环境介绍:http是一个tomcat 的js程序 ,设置的路径为/opt/tomcat5/logs/localhost_access_log.txt OS:centos 5.3 fail2ban版本:fail2ban-0.8.2-3.el5.rf.noarch.rpm 官方网站:http://www.fail2ban.org/wiki/index.php/Main_Page 背景&…

[Linux] VIM 代码折叠

From: http://www.cnblogs.com/abeen/archive/2010/08/06/1794197.html VIM 代码折叠 VIM代码折叠方式可以用"foldmethod"选项来设置,如: set foldmethodindent 有6种方式来折叠代码 1. manual //手工定义折叠 2. indent //用缩进表示折叠 3. expr  //…

linux time

time&#xff08;取得目前的时间&#xff09; 相关函数ctime&#xff0c;ftime&#xff0c;gettimeofday 表头文件#include<time.h> 定义函数time_t time(time_t *t); 函数说明此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t 并非…

java 模拟登陆web系统_关于java模拟登陆WEB的问题。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.URL;import javax.swing.JOptionPane;/** …

React开发(176):导出所有接口供使用

export * from ‘./order’; export * from ‘./wallet’; export * from ‘./walletAccount’; export * from ‘./walletTrade’;

微软Windows Mobile智能手机GPRS上网设置教程(转)

总是不断的有用户咨询GPRS的设置方法。并且由于中国移动的原因&#xff0c;人为的将一个GPRS网搞成了两个接入&#xff1a;CMNET和CMWAP&#xff0c;因此带来的问题更是多多。在昨日一个用户被移动强盗般的扣取了100多元的网络费后促使了这篇文章的加速出炉。之所以推荐新手必看…

[vim] vim中使用cscope的安装与使用

From: http://blog.sina.com.cn/s/blog_498a6eeb0100v05m.html 1. 下载cscope-15.7 http://dldx.csdn.net/fd.php?i878111800792509&s924cf0d6a0f63bb6ca24f900 ba3fcad8解压所里面有三个文件&#xff0c; 放到vim的安装目录下即可。2.建索引-bBuild the cross-reference…

Sql Server函数全解二数学函数

阅读目录 1.绝对值函数ABS(x)和返回圆周率的函数PI()2.平方根函数SQRT(x)3.获取随机函数的函数RAND()和RAND(x)4.四舍五入函数ROUND(x,y)5.符号函数SIGN(x)6.获取整数的函数CEILING(x)和FLOOR(x)7.幂运算函数POWER(x,y)、SQUARE(x)、和EXP(x)8.对数的运算LOG(x)和LOG10(x)9.角度…

java 虚类private 继承_Java经典面试36题和答案

1.”static”关键字是什么意思&#xff1f;Java中是否可以覆盖(override)一个private或者是static的方法&#xff1f;“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。Java中static方法不能被覆盖&#xff0c;因为方法覆盖是基于运…

React开发(177):opentab没有menu会报错

import { openTab } from /utils/tabUtils; connect(({ turnover, menu }) > ({turnover,menu, }))

Silverlight - IIS 7.5 部署SilverLight4网站以及问题解决

http://www.silverlightchina.net/html/tips/2010/0216/723.html 安装设置 Windows 7 IIS (HTTP Error 500.21 - Internal Server Error)解决 原因&#xff1a;在安装Framework v4.0之后&#xff0c;再启用IIS&#xff0c;导致Framework没有完全安装 解决&#xff1a;开始->…

[vim]vim 插件汇总

From: http://blog.sina.com.cn/s/blog_498a6eeb0100v06k.html 1. NERD_commenter.vim 万能的注释插件。 可以根据增加或修改&#xff0c;非常方便。 2. ctags 和cscope 用来看代码的一个工具&#xff0c;和cscope配合使用更好。 3.TagList 插件 高效地浏览源码, 出了当前文件…

php框架 wc if_PHP if else语句

无论在何种编程语言中&#xff0c;流程控制都是很重要的内容。由于 PHP 的大部分语法都继承了C语言的特点&#xff0c;因此在流程控制方面&#xff0c;PHP 有着和C语言类似的流程控制。if else 语句是流程控制中根据条件判断执行的一种。该语句执行时先对条件进行判断&#xff…

React开发(178):ant design table基础用法

<Table columns{columns} dataSource{data} /> ant design重要的控制表头和数据的对象属性 columns data

c# 泛型List的定义、作用、用法

定义&#xff1a;List<T>类表示可通过索引访问的对象的强类型列表&#xff0c;提供用于对列表进行搜索、排序和操作的方法。 作用&#xff1a; 泛型最常见的用途是泛型集合 我们在创建列表类时&#xff0c;列表项的数据类型可能是int,string或其它类型&#xff0c;如果对…

[vim]在vim中格式化xml

From: http://blog.sina.com.cn/s/blog_498a6eeb0100v3km.html 在_vimrc中增加&#xff1a; " 格式化xml function Xml() set filetypexml :%s/></>\r</g"把><替换成>回车< :normal ggG endfunction map <leader>xml :ca…