分屏启动Vim:
1
2
|
vim -On file1 file2 ... # 使用大写的O参数来垂直分屏
vim -on file1 file2 ... # 使用小写的o参数来水平分屏
|
注释: n是数字,表示分成几个屏。
关闭分屏 :
1
2
|
Ctrl+W c # 关闭当前窗口
Ctrl+W q # 关闭当前窗口,如果只剩最后一个了,则退出Vim
|
分屏:
1
2
3
4
|
Ctrl+W s # 上下分割当前打开的文件
:sp filename # 上下分割,并打开一个新的文件
Ctrl+W v # 左右分割当前打开的文件
:vsp filename # 左右分割,并打开一个新的文件
|
移动光标:
Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W
1
2
3
4
5
|
Ctrl+W l # 把光标移到右边的屏
Ctrl+W h # 把光标移到左边的屏中
Ctrl+W k # 把光标移到上边的屏中
Ctrl+W j # 把光标移到下边的屏中
Ctrl+W w # 把光标移到下一个的屏中
|
移动分屏:
这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状。
1
2
3
4
|
Ctrl+W L # 向右移动
Ctrl+W H # 向左移动
Ctrl+W K # 向上移动
Ctrl+W J # 向下移动
|
屏幕尺寸:
下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用Ctrl+W <或是>,但这可能需要最新的版本才支持。
1
2
3
|
Ctrl+W = # 让所有的屏都有一样的高度
Ctrl+W + # 增加高度
Ctrl+W - # 减少高度
|
横向调整:
1
2
3
|
:vertical res(ize) num # 指定当前窗口为num列
:vertical res(ize)+num # 把当前窗口增加num列
:vertical res(ize)-num # 把当前窗口减少num列
|
给窗口重命名:
1
|
:f file
|
多标签:
直接在编辑的时候输入:
1
2
3
4
5
6
7
8
9
10
|
vim -p <filename> vim -p * #编辑当前目录的所有文件
多个标签间进行切换时向右切换gt,向左切换用gT
:tabnew filename # 在编辑的时候想增加一个标签
:tabc # 关闭当前的tab
:tabo # 关闭所有其他的tab
:tabs # 查看所有打开的tab
:tabp # 前一个
:tabn # 后一个
|
文件浏览:
1
2
3
4
|
:Ex # 开启目录浏览器,可以浏览当前目录下的所有文件,并可以选择
:Sex # 水平分割当前窗口,并在一个窗口中开启目录浏览器
:ls # 显示当前buffer情况(已打开了多少个文件)
:b <序号/代号> # 指定序号(代号)的文件在本窗口打开, 其中的序号/代号就是用:ls命令看到的.
|
还原 Vim 窗口大小:
1
|
:
set
sessionoptions+=resize
|
关闭多窗口:
1
2
3
4
|
:qa # quit all
:wa # write all
:qa! # force to quit all
:wqa # write, then quit all
|
VIM和shell的切换:
执行 shell 命令
1
|
:!{command} # 从Vim内部执行单个shell命令
|
字符 "!" 也用在其它有个程序被调用运行的场合。让我们看一看共有哪些:
1
2
3
4
|
:!{program} # 执行 {program}
:r !{program} # 执行 {program} 并读取其输出
:w !{program} # 执行 {program} 传送文本至其输入
:[range]!{program} # 经由 {program} 过滤文本
|
注意 "!{program}" 前面那个作用区产生的区别可大了。不附带作用区,这个程序就跟通常一样被执行,而加了这个作用区,作用区内的文本行就经由该程序过滤而出。用这种方法执行一系列命令也是可以的。但 shell 在此却更胜一筹。你可以用这种方法启动一个新 shell:
1
2
|
:shell # 进入新shell
<ctrl+D>/exit # 退出shell,还原vim环境
|