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]可以隐藏当前窗口

      • 隐藏的windowbuffer不保存
      • 除非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]全屏
  • 多窗口操作

    • 所有窗口都有
    • 全退出: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是参数列表( arguments list)
      • 列表里有3个参数 argument
      • 我们可以在 :ar[gs] 查看所有参数

图片描述?

操作参数列表

  • arga

    • 添加到参数列表
    • argument add
    • :arga o4

      • 添加 o4 到参数列表
      • :args 可以看见 o4 进入了参数列表
    • :arga ~/.vimrc 添加一个实际存在的文件

      • :args 可以看见 .vimrc 进入了参数列表
      • ls 可以看到他也进入了 buffer list
      • b .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 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
    • 这样就可以横向打开3window,每个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参数列表
  • 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地址] (GitHub - overmind1980/oeasyvim: 这是oeasy制作的的一套关于vim的教程 可以在 https://www.lanqiao.cn/teacher/courses/2840 做实验 邀请码FJWYIMGB 本教程从0基础开始,到精通vim配置,和高级命令。希望能让vim是你的开发更高效。)
[Gitee地址] (overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 vim_Linux - 蓝桥云课)

?

vim