Vim用户手册 - by Bram Moolenaar
译者:Nek_in
http://vimcdoc.sf.net
分割窗口
显示两个不同的文件;或者同时显示一个文件的两个不同地方;又或者并排比较两个文
件。这一切都可以通过分割窗口实现。
|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|
- 浏览: 230468 次
- 性别:
- 来自: 北京
最新评论
-
sfshine:
非常好非常好
Android 窗口管理 -
mthhk:
...
android3.0之Fragment(碎片)基础 -
FrankHB1989:
“C/C++标准不会保证这样的代码一定不会出错”的依据?你要说 ...
Duff's Device -
2006003845:
请问知道 刚体之间怎么不碰撞嘛 ?相互穿插
JBOX2D分析
相关推荐
始终对vim分割窗口有一个很好的视图 ------------- - ----------------------------------------------- Plugin : GoldenView.vim Author : Zhao Cai EMail : caizhaoff@gmail.com Homepage : ...
在这个“vim命令收集”中,我们将深入探讨两个核心文档——"vim分割窗口.txt"和"vim常用命令.txt"所涵盖的知识点。 1. **Vim基本操作** - 启动与退出:通过`vim 文件名`启动,`:q`退出(未修改),`:wq`保存并退出...
分割窗口能提高工作效率,让编辑和比较文件变得更加直观和方便。 #### 二、垂直和水平分割 - **垂直分割**:使用`:vsplit`或简写命令`:vs`,可以在当前窗口左侧打开一个新窗口。 - **水平分割**:`:split`命令用于...
vim常用命令 我汇总的一些vim常用的指令和按键操作,和一些NERDTree菜单插件的命令,尤其是NERDTree,这个vim插件装上之后,感觉完全可以把vim当IDE来用...水平分割窗口打开新文件 :vsplit se.txt 垂直分割窗口 :!
7. **多窗口编辑**:`:sp`或`:vs`水平分割窗口,`:vs`垂直分割。使用`Ctrl + w`加方向键在窗口间切换。 8. **宏录制与播放**:`qq`开始录制宏,完成一系列操作后,`q`结束录制。`@q`播放宏,`@@`重复上一次播放。 ...
这个工具允许你在 `tmux` 的不同窗格和 `vim` 的分割窗口之间无缝切换,极大地提高了开发效率。下面我们将详细探讨 `vim-tmux-navigator` 的工作原理、安装与配置,以及如何利用它提升你的开发体验。 ### 1. `vim` ...
5. **分割窗口**:Vim允许用户分割窗口,同时查看和编辑多个文件,还提供了垂直分割和调整窗口大小的功能。 ### Vim高级功能 1. **使用GUI版本**:在图形用户界面环境中使用Vim,包括使用鼠标、剪贴板和选择模式等...
3. **多窗口编辑**:`:sp 文件名` 在当前窗口下打开新文件,`:vs 文件名` 创建垂直分割窗口。 4. **语法高亮**:在vim配置文件中启用`syntax on`可开启语法高亮。 5. **自动补全**:安装插件如`YouCompleteMe`或`...
例如,它可能提供快捷键来分割窗口、移动窗口、调整大小,甚至使用可视化标记来快速定位和操作窗口。 3. **a.vim**:这个文件可能是对Vim默认行为的一种扩展或优化。"a"通常代表“append”或“auto”,可能是某种...
- 分割窗口:`:split`分割窗口、`:vsplit`垂直分割窗口。 - 切换窗口:`Ctrl+w`+`h`、`Ctrl+w`+`j`、`Ctrl+w`+`k`、`Ctrl+w`+`l`分别切换到左侧、下方、上方、右侧窗口。 **知识点13:脚本语言与扩展性** - Vim支持...
在IT领域,"分割窗口"通常指的是在操作系统或应用程序中将一个单一的显示器空间分成两个或多个独立的工作区域,每个区域可以显示不同的程序或者同一程序的不同部分。这种功能在多任务处理和提高工作效率方面非常有用...
9. **窗口管理**: `:sp`或`:vs`水平分割窗口,`:vsp`垂直分割,`Ctrl+w+h/j/k/l`在窗口间切换,`Ctrl+w+q`关闭当前窗口。 10. **插件与配置**: 如何安装vim插件,如Vundle或Pathogen,以及编写`.vimrc`文件来自定义...
除了默认的分割窗口操作,WinManager允许用户自定义布局,拖放窗口,以及用键盘快捷键更方便地控制窗口大小和位置,这对于多任务处理非常实用。 5. **a.vim**:由于信息不全,我们无法给出详细解释。通常,这种命名...
- **改变文件打开方式**:如何设置文件在打开时的行为,例如自动分割窗口。 - **netrw的配置**:如何自定义netrw的行为,如设置分割窗口的宽度等。 - **通过SSH编辑文件**:介绍了如何通过SSH远程编辑文件。 #### ...
`:pushpin`插件就是为了满足这一需求而诞生的,它允许用户在Vim中以一个清晰、易读的弹出窗口展示当前被分割的文件名,使窗口切换变得更为直观和无缝。 `:pushpin`插件的核心功能是创建一个浮动窗口,这个窗口会...
2. **WinManage**:这个插件主要用于窗口管理,使用户可以在Vim中轻松地分割和操作窗口,实现多文件同时编辑,提升工作效率。例如,它可以方便地进行窗口切换、调整大小和排列布局。 3. **Tags**:Tag功能是Vim的一...
- **垂直分割**:介绍如何垂直分割窗口。 - **窗口移动**:如何在不同的窗口间移动文本。 - **全局命令执行**:如何在所有打开的窗口中执行相同的命令。 - **差异显示**:如何使用vimdiff命令比较两个文件的不同之处...
- `:sp`或`:vs`水平分割窗口,`:vsp`垂直分割。 - `<C-w>`+`hjkl`在窗口间移动,`:q`关闭当前窗口。 5. **插件**: - Vim的强大之处在于其丰富的插件生态系统。例如,`NERDTree`用于文件管理,`tagbar`显示代码...
- `:vsp filename`:垂直分割窗口打开文件。 - `<Ctrl-w> h/j/k/l`:在窗口间移动光标。 - `<Ctrl-w> w`:切换到下一个窗口。 - `<Ctrl-w> +`:增大当前窗口大小。 - `<Ctrl-w> -`:减小当前窗口大小。 - `...
1. 打开新窗口:`:sp`或`:vsp`水平或垂直分割窗口。 2. 在窗口间切换:`Ctrl+w+h/j/k/l`分别移动到左侧、下侧、上侧和右侧的窗口。 3. 关闭窗口:`:q`关闭当前窗口,`:only`关闭除当前窗口外的所有窗口。 五、宏...