1、如何打开多窗口:
(1)不同文件在不同窗口打开
打开方法:
(1):e filename_path/filename
此时可以通过Tab键查找目录下的文件,此时是重新打开选定的文件,前一个打开的文件将被关掉;不退出vi情况下打开另一个文件,一个窗口只显示一个文件。
(2):new filename_path/filename
打开选定文件,前一个打开的文件不退出;
(3):sp filename_path/filename或:split filename_path/filename
打开选定文件,前一个打开的文件不退出;
(2)和(3)均为在一个窗口中打开两个文件。
窗口间切换:
ctrl+w,k:将光标移到上面窗口;
ctrl+w,j:将光标移到下面窗口;
ctrl+W/J:上下两个窗口位置互换,但光标的位置仍在原来那个窗口;
(2)同一个文件在两个窗口打开
2、Vim的分屏功能
1、分屏启动Vim
使用小写的o参数来上下分屏(横向分屏)。
vim -on file1 file2 ...
使用大写的O参数来左右分屏(纵向分屏)。
vim -On file1 file2 ...
注释: n是数字,表示分成几个屏。
2、关闭分屏
关闭当前窗口。
Ctrl+W c
关闭当前窗口,如果只剩最后一个了,则退出Vim。
Ctrl+W q
把光标移到下一个的屏中
Ctrl+W w
3、分屏
上下分割当前打开的文件。
Ctrl+W s
上下分割,并打开一个新的文件。
:sp filename
左右分割当前打开的文件。
Ctrl+W v
左右分割,并打开一个新的文件。
:vsp filename
4、移动光标
Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W
把光标移到右边的屏。
Ctrl+W l
把光标移到左边的屏中。
Ctrl+W h
把光标移到上边的屏中。
Ctrl+W k
把光标移到下边的屏中。
Ctrl+W j
把光标移到下一个的屏中。.
Ctrl+W w
5、移动分屏
这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状。
向右移动。
Ctrl+W L
向左移动
Ctrl+W H
向上移动
Ctrl+W K
向下移动
Ctrl+W J
6、屏幕尺寸
下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用Ctrl+W <或是>,但这可能需要最新的版本才支持。
让所有的屏都有一样的高度。
Ctrl+W =
增加高度。
Ctrl+W +
减少高度。
Ctrl+W -
3、打开多标签页(仅显示文件)
操作标签页的基本命令如下:
:tabnew : 打开一个新的标签页。
eg:tabnew filename
:tabprevious : 回到上一个标签页。
:tabnext : 到下一个标签页。
:tabc:关闭当前标签页
标签页切换快捷方式组合键:gt
每次新建或者切换标签,都要手动键入相关命令效率不是很高,于是我们可以设置快捷键,贴上我的配置:
CODE:
:map <F6> :tabprevious<CR>
:map <F7> :tabnext<CR>
:map <F5> :tabnew<CR>
:imap <F6> <ESC>:tabprevious<CR>i
:imap <F6> <ESC>:tabnext<CR>i
:imap <F5> <ESC>:tabnew<CR>i
注意:配置文件一般在/etc/vimrc,或者~/.vimrc具体情况自己把握。
4、vi多文件间的操作
1、已打开vi情况下:
eg:利用vi已打开a.txt
输入:
(1):args b.txt //不需退出vi,会直接关闭a.txt,在打开b.txt
(2):args b.txt c.txt ... //即同时打算打开多个文件,同样不行退出vi,会先关闭 //a.txt,然后打开b.txt
此时,就涉及到多文件的操作了,此时输入如下命令:
:next //会直接切换打开c.txt,可以和数字结合使用,eg:2next,指向 //后跳过两个文件
:previous //又会切换打开上一个文件,此处即为b.txt。同next,也可以和数 //字组合使用
(注:此处next和previous两个命令的作用可由快捷方式实现:Ctrl+^)
注:可以很方便实现不同文件间的内容直接复制
2、vi同时打开多个文件
eg:
vi 1.log 2.log 3.log //同时打开三个文件
以下为多个文件间的切换:
":bn":切换到下一个文件。
":bp":切换到上一个文件。
":bw":关闭当前文件。
ctrl+^:在当前文件和上一个文件间切换。
5、由vi直接写入其他文件内容
弊端:只能写在文件的末尾
分为两种情况:
(1)
eg1:
vi a.txt
利用复制内容的方法(有多种方法,见本文),选定内容
输入如下命令:
:write >> filename //filename为待写入内容的文件,此种方法只能将内容追 //加在文件的末尾
6、利用find命令打开多个文件
find –name *.txt |xargs vi //vi会打开找到的所有txt文本