oeasy教您玩转vim - 64- # 参数argument
参数argument
回忆上次
上次了解了 窗口
window
窗口是用来装缓冲
buffer
的buffer
是在内存里面加载的硬盘文件窗口的切分
:sp[lit]
水平切分:vsp[lit]
垂直切分窗口的切换
ctr-w再k切换到当前窗口上面的窗口
ctrl-w再j切换到当前窗口下面的窗口
ctrl-w再h切换到当前窗口左面的窗口
ctrl-w再l切换到当前窗口右面的窗口
窗口的隐藏和全屏
其他的窗口都进入
:hide
状态隐藏的
window
中buffer
不保存除非
autowrite
设置了:hid[e]
可以隐藏当前窗口:on[ly]
可以全屏当前窗口laststatus
可以设置状态栏terminal
可以开启终端上次主要就是
window
,还挺方便尤其多文件操作
这个还有什么可玩的吗?🤔
总结简化出窗口的全键盘操作
新建与退出
ctr-w再s相当于
:sp[lit]
上下分割ctrl-w再v相当于
:vsp[lit]
左右分割ctrl-w再q相当于
:q[uit]
ctrl-w再o相当于
on[ly]
全屏多窗口操作
所有窗口都有
全退出
:qall
全保存
:wall
全保存并退出
:wqall
强制退出
:qall!
选择当前窗口
ctrl-w再h选择左边的窗口
ctrl-w再j选择下边的窗口
ctrl-w再k选择上边的窗口
ctrl-w再l选择右边的窗口
调整宽度
ctrl-w再=所有窗口尽量高度宽度都相等
ctrl-w再-当前窗口高度降低
ctrl-w再+当前窗口高度升高
ctrl-w再<当前窗口宽度降低
ctrl-w再>当前窗口宽度升高
同时打开三个文件
首先
man vi
查到打开三个文件的方式命令是
vi
o1 o2 o3
是参数列表(arguments
list)列表里有
3
个参数argument
我们可以在
:ar[gs]
查看所有参数vi o1 o2 o3

操作参数列表
arga
:args
可以看见.vimrc
进入了参数列表ls
可以看到他也进入了buffer list
b .vimrc
可以把当前window
切换到.vimrc
这个buffer
添加
o4
到参数列表:args
可以看见o4
进入了参数列表添加到参数列表
argument
add
:arga o4
:arga ~/.vimrc
添加一个实际存在的文件:argd
从参数列表删除
.vimrc
:args
可以看到
.vimrc
从参数列表消失但是
buffer
还在从参数列表删除o4
:args
可以看见
o4
从参数列表消失从参数列表删除
argument delete
argd o4
argd /home/shiyanlou/.vimrc
参数argument和缓存buffer之间什么关系?
参数argument和缓存buffer
arguements
是在打开vim
时候打开的参数arguement
文件列表一开始打开的文件进入参数列表
在内存中加载成为一个个缓冲
buffers
也进入缓冲列表
:buffers
这个时候再新打开文件
:e o5
o5
会进入buffers list
但是不会进入
arguments list
如果想让他进入的话
就需要
:arga o5
想在
arguments list
删除的话就需要
:argd o5
想在
buffers list
删除的话可以
bd3
或者bd o2
参数
argument
列表和缓存buffer
列表 关系他们两个除了开始的时候是一致
后来完全是两个列表
需要分别维护
我们为什么理清这些东西呢
因为以后可能会有针对 缓冲
buffers
文件列表的批处理也会有针对 参数
arguments
文件列表的批处理
多参数多窗口
参数多于
1
的时候可以直接打开多个窗口开关是
-o
vi -o o1 o2 o3
这样就可以横向打开
3
个window
,每个argument
对应一个或者
vi -O o1 o2 o3
纵向打开
3
个文件

在vim
中打开多个文件
首先在
terminal
做准备ls -lah > oeasy.txt
cp oeasy.txt o2z.txt
vi
:arga *.txt
有没有进入参数argument列表
:args
有没有进入缓冲buffer列表?
:buffers
如果
:arga */*.txt
可以加载一层目录下面的
txt
文件退出vim之后
再来观察
e *.txt
不能执行e
不支持通配符e o3z.txt
可以把文件加载到buffer list
但不进入
argument list
直接打开
多个文件作为
argments list
参数列表在
- `sudo find / -mindepth 3 -maxdepth 4 -name passwd` - 可以用`sudo`权限找到所有3层目录到4层目录中 - 名字含有`passwd`的文件列表terminal
中运行这个文件列表可以交给
vi
作为argments list
参数列表sudo find / -mindepth 3 -maxdepth 4 -name passwd | xargs vi
这样打开之后
argments list
参数列表buffers list
缓冲列表都自动加载好了
如果有不需要的
可以
:bd4
删除缓冲buffer
:argd filename
来删除参数argument
如果有需要添加的
:e filename
添加缓冲buffer
:arga filename
添加参数argument

总结
我们这次参数列表
arguments list
所谓参数列表指的是
vim
打开的参数列表
参数会加载到内存中成为
buffer
参数的控制
:arga filename
添加参数
此操作支持*可以打开多个文件
:argd filename
来删除参数
:args
查询参数列表缓冲的控制
:bd filename
来删除缓存
:e filename
来打开缓存
ls
可以列出缓存列表可以在
terminal
中配合find
来找到文件然后作为参数给
vim
sudo find / -mindepth 3 -maxdepth 4 -name passwd | xargs vi
精准地控制了参数列表或者缓冲列表
这两个可以怎么用呢?🤔
下次再说 *
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)