oeasy教您玩转vim - 64- # 参数argument
?
参数argument
回忆上次
- 上次了解了 窗口 
window - 窗口是用来装缓冲
buffer的 buffer是在内存里面加载的硬盘文件- 
窗口的切分
:sp[lit]水平切分:vsp[lit]垂直切分
 - 
窗口的切换
- ctr-w再k切换到当前窗口上面的窗口
 - ctrl-w再j切换到当前窗口下面的窗口
 - ctrl-w再h切换到当前窗口左面的窗口
 - ctrl-w再l切换到当前窗口右面的窗口
 
 - 
窗口的隐藏和全屏
- 
:hid[e]可以隐藏当前窗口- 隐藏的
window中buffer不保存 - 除非
autowrite设置了 
 - 隐藏的
 - 
:on[ly]可以全屏当前窗口- 其他的窗口都进入
:hide状态 
 - 其他的窗口都进入
 
 - 
 laststatus可以设置状态栏terminal可以开启终端- 上次主要就是
window,还挺方便 - 尤其多文件操作
 - 这个还有什么可玩的吗???
 
总结简化出窗口的全键盘操作
- 
新建与退出
- ctr-w再s 相当于
:sp[lit]上下分割 - ctrl-w再v 相当于
:vsp[lit]左右分割 - ctrl-w再q 相当于
:q[uit] - ctrl-w再o 相当于
on[ly]全屏 
 - ctr-w再s 相当于
 - 
多窗口操作
- 所有窗口都有
 - 全退出
: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- 命令是
vi o1 o2 o3是参数列表(argumentslist)- 列表里有
3个参数argument - 我们可以在 
:ar[gs]查看所有参数 
 - 命令是
 
 - 
 
操作参数列表
- 
arga- 添加到参数列表
 argumentadd- 
:arga o4- 添加 
o4到参数列表 :args可以看见o4进入了参数列表
 - 添加 
 - 
:arga ~/.vimrc添加一个实际存在的文件:args可以看见.vimrc进入了参数列表ls可以看到他也进入了buffer listb .vimrc可以把当前window切换到.vimrc这个buffer
 
 - 
:argd- 从参数列表删除
 argument delete- 
argd o4- 从参数列表删除o4
 :args- 可以看见 
o4从参数列表消失 
 - 
argd /home/shiyanlou/.vimrc- 从参数列表删除 
.vimrc :args- 可以看到
.vimrc从参数列表消失 - 但是 
buffer还在 
 - 从参数列表删除 
 
 - 参数argument和缓存buffer之间什么关系?
 
参数argument和缓存buffer
- 
arguements是在打开vim时候打开的参数arguement文件列表- 一开始打开的文件进入参数列表
 - 在内存中加载成为一个个缓冲
buffers - 也进入缓冲列表 
:buffers 
 - 
这个时候再新打开文件
:e o5o5会进入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.txtcp oeasy.txt o2z.txtvi:arga *.txt
 - 
有没有进入参数argument列表
:args
 - 
有没有进入缓冲buffer列表?
:buffers
 - 
如果
:arga */*.txt- 可以加载一层目录下面的
txt文件 
 - 可以加载一层目录下面的
 - 退出vim之后
 - 
再来观察
e *.txt不能执行e不支持通配符e o3z.txt可以把文件加载到buffer list- 但不进入
argument list 
 
直接打开
- 多个文件作为
argments list参数列表 - 
在
terminal中运行- `sudo find / -mindepth 3 -maxdepth 4 -name passwd` - 可以用`sudo`权限找到所有3层目录到4层目录中 - 名字含有`passwd`的文件列表
 - 
这个文件列表可以交给
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地址] (
?


